Jako programista Java, jeśli zamierzasz zbudować narzędzie lub aplikację do porównywania kodu źródłowego lub być może będziesz musiał zarządzać kilkoma wersjami plików kodu, możesz pomyśleć o tym, jak porównywać i łączyć pliki kodu źródłowego w Javie. Jeśli tak, w tym artykule wyjaśnimy, jak łatwo możemy to zrobić bez pisania wielu linii kodu. Poza tym zobaczymy, jak możemy pobrać, zaakceptować lub odrzucić zmiany podczas łączenia plików kodu źródłowego.
W tym artykule omówione zostaną punkty podane poniżej:
- Biblioteka Java do porównywania i łączenia plików kodu źródłowego
- Jak porównywać i łączyć pliki kodu źródłowego w Javie
- Uzyskaj listę zmian za pomocą Java
- Zaawansowane opcje w bibliotece porównawczej kodu Java
Biblioteka Java do porównywania i łączenia plików kodu źródłowego
Do porównywania i łączenia plików kodu źródłowego użyjemy biblioteki porównania kodu Java, które zawiera wszystkie ważne i wyjątkowe funkcje porównywania kodu źródłowego. Tę bibliotekę porównującą kod Java można pobrać lub zainstalować bezpośrednio przy użyciu konfiguracji Mavena, jak podano poniżej.
<repository>
<id>groupdocs-artifacts-repository</id>
<name>GroupDocs Artifacts Repository</name>
<url>https://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-comparison</artifactId>
<version>22.11</version>
</dependency>
Jak porównywać i łączyć pliki kodu źródłowego w Javie
Załóżmy, że mamy dwa pliki (source.cs i target.cs) różnych wersji kodu źródłowego, jak pokazano na poniższym zrzucie ekranu.
Biorąc pod uwagę powyższe pliki, napiszmy fragment kodu w Javie, wykonując kroki podane poniżej:
- Zainicjuj klasę Comparer ścieżką lub strumieniem dokumentu źródłowego.
- Wywołaj metodę add() i określ ścieżkę lub strumień dokumentu docelowego.
- Wywołaj metodę compare().
Poniższy przykładowy kod pokazuje, jak łatwo można porównywać i łączyć pliki kodu źródłowego w języku Java.
//Utwórz instancję obiektu porównującego ze ścieżką lub strumieniem dokumentu źródłowego;
try (Comparer comparer = new Comparer(SourceFile)) {
// Wywołaj metodę dodawania i określ docelową ścieżkę lub strumień dokumentu.
comparer.add(TargetFile);
//Wywołaj metodę porównania.
final Path resultPath = comparer.compare(ResultPath);
}
W rezultacie otrzymamy połączony plik kodu źródłowego i plik HTML podkreślający zmiany w kodzie. Należy pamiętać, że elementy usunięte zostaną zaznaczone na czerwono , dodane – na niebiesko , a zmodyfikowane – na zielono .
Uzyskaj listę zmian za pomocą Java
Aby otrzymać listę wszystkich zmian po porównaniu, napiszemy kod w następujący sposób:
- Zainicjuj obiekt Comparer ścieżką pliku źródłowego.
- Wywołaj metodę add() i podaj ścieżkę do pliku docelowego.
- Wywołaj metodę compare().
- Uzyskaj listę zmian za pomocą metody getChanges().
Poniższy przykładowy kod pokazuje, jak uzyskać listę wszystkich zmian.
//Zainicjuj obiekt porównujący ścieżką pliku źródłowego
try (Comparer comparer = new Comparer(sourceFile)) {
//Wywołaj metodę [add][] i określ ścieżkę pliku docelowego.
comparer.add(targetFile);
//Wywołaj metodę porównania
final Path resultPath = comparer.compare();
//Pobierz listę zmian za pomocą metody getChanges
ChangeInfo[] changes = comparer.getChanges();
//Wyświetl liczbę zmian
System.out.println("Count of changes: " + changes.length);
}
Zaawansowane opcje w bibliotece porównawczej kodu Java
Jeśli musisz zaakceptować lub odrzucić kilka wersji kodu, może być konieczne zastosowanie lub odrzucenie zmian. W takim przypadku należy postępować zgodnie z poniższymi krokami:
- Zainicjuj obiekt klasy Comparer ścieżką lub strumieniem dokumentu źródłowego.
- Wywołaj metodę add() i ustaw ścieżkę do dokumentu docelowego.
- Wywołaj metodę compare().
- Wywołaj metodę getChanges() i uzyskaj listę wykrytych zmian.
- Ustaw ComparisonAction potrzebnego obiektu zmiany na wartość ComparisonAction.ACCEPT lub ComparisonAction.REJECT.
- Wywołaj metodę applyChanges() i przekaż do niej kolekcję zmian.
Poniższy fragment kodu pokazuje, jak korzystać z zaawansowanych opcji biblioteki porównywania kodów.
//Zainicjuj obiekt porównujący ścieżką pliku źródłowego
try (Comparer comparer = new Comparer(sourcePath)) {
//Wywołaj metodę [add][] i określ ścieżkę pliku docelowego.
comparer.add(targetPath);
//Wywołaj metodę porównania
final Path resultPath = comparer.compare(outputPath);
//Pobierz listę zmian za pomocą metody getChanges
ChangeInfo[] changes = comparer.getChanges();
//Ustaw ComparisonAction wymaganego obiektu zmiany na wartość ComparisonAction.ACCEPT.
for (int i = 0; i < 10; i++) {
changes[i].setComparisonAction(ComparisonAction.ACCEPT);
}
//Ustaw ComparisonAction wymaganego obiektu zmiany na wartość ComparisonAction.REJECT.
for (int i = 10; i < changes.length; i++) {
changes[i].setComparisonAction(ComparisonAction.REJECT);
}
// Wywołaj metodę ApplyChanges i przekaż do niej kolekcję zmian.
comparer.applyChanges(resultPath, new ApplyChangeOptions(changes));
}
Zdobądź bezpłatną licencję
Możesz uzyskać bezpłatną licencję tymczasową, aby wypróbować interfejs API bez ograniczeń ewaluacyjnych.
Wniosek
Podsumowując, mamy nadzieję, że nauczyłeś się programowo porównywać i łączyć pliki kodu źródłowego za pomocą biblioteki porównawczej kodu Java. W rezultacie otrzymasz podsumowanie wstawionej lub usuniętej treści. Ponadto przeszedłeś przez sposoby uzyskania listy zmian i zaakceptowania lub odrzucenia zidentyfikowanych zmian.
Możesz odwiedzić dokumentację, aby poznać inne funkcje.
Zadać pytanie
Możesz przekazać nam swoje pytania lub wątpliwości na naszym forum.
Często zadawane pytania
Jak porównywać i łączyć pliki kodu źródłowego w Javie?
Zainicjuj klasę Comparer ścieżką lub strumieniem dokumentu źródłowego, wywołaj metodę add() i ustaw ścieżkę lub strumień dokumentu docelowego. Następnie wywołaj metodę compare() klasy Comparer.