Porównuj i łącz pliki kodu źródłowego w Javie

Porównuj i łącz pliki kodu źródłowego w Javie

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

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.

Pliki kodu źródłowego do porównania

Biorąc pod uwagę powyższe pliki, napiszmy fragment kodu w Javie, wykonując kroki podane poniżej:

  1. Zainicjuj klasę Comparer ścieżką lub strumieniem dokumentu źródłowego.
  2. Wywołaj metodę add() i określ ścieżkę lub strumień dokumentu docelowego.
  3. 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 .

Porównuj i łącz pliki kodu źródłowego

Uzyskaj listę zmian za pomocą Java

Aby otrzymać listę wszystkich zmian po porównaniu, napiszemy kod w następujący sposób:

  1. Zainicjuj obiekt Comparer ścieżką pliku źródłowego.
  2. Wywołaj metodę add() i podaj ścieżkę do pliku docelowego.
  3. Wywołaj metodę compare().
  4. 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:

  1. Zainicjuj obiekt klasy Comparer ścieżką lub strumieniem dokumentu źródłowego.
  2. Wywołaj metodę add() i ustaw ścieżkę do dokumentu docelowego.
  3. Wywołaj metodę compare().
  4. Wywołaj metodę getChanges() i uzyskaj listę wykrytych zmian.
  5. Ustaw ComparisonAction potrzebnego obiektu zmiany na wartość ComparisonAction.ACCEPT lub ComparisonAction.REJECT.
  6. 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.

Zobacz też