Сравните и объедините файлы исходного кода в Java

Сравните и объедините файлы исходного кода в Java

Как Java-разработчик, если вы собираетесь создать инструмент сравнения исходного кода или приложение, или вам может понадобиться управлять несколькими версиями файлов кода, вы можете подумать о том, как **сравнивать и объединять файлы исходного кода в Java. **. Если да, то эта статья объяснит, как легко мы можем это сделать, не написав несколько строк кода. Кроме того, мы увидим, как мы можем получить, принять или отменить изменения при слиянии файлов исходного кода.

В этой статье будут рассмотрены пункты, указанные ниже:

Библиотека Java для сравнения и объединения файлов исходного кода

Чтобы сравнить и объединить файлы исходного кода, мы будем использовать Java сравнение кода библиотека, которая включает в себя все важные и выдающиеся функции сравнения исходного кода. Эту библиотеку сравнения кода Java можно либо загрузить, либо установить напрямую, используя конфигурацию Maven, как указано ниже.

<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>

Как сравнивать и объединять файлы исходного кода в Java

Предположим, у нас есть два файла (source.cs и target.cs) разных версий исходного кода, как показано на следующем снимке экрана.

Файлы исходного кода для сравнения

Рассмотрев приведенные выше файлы, давайте напишем фрагмент кода на Java, выполнив шаги, указанные ниже:

  1. Инициализируйте класс Comparer с помощью пути или потока исходного документа.
  2. Вызовите метод add() и укажите путь или поток целевого документа.
  3. Вызвать метод compare().

В следующем примере кода показано, как легко можно сравнивать и объединять файлы исходного кода в Java.

//Instantiate Comparer object with source document path or stream;
try (Comparer comparer = new Comparer(SourceFile)) {
// Invoke add method and specify target document path or stream.
comparer.add(TargetFile);
//Invoke compare method.
final Path resultPath = comparer.compare(ResultPath);
}

В результате мы получим объединенный файл исходного кода и файл HTML, подсвечивающий изменения в коде. Обратите внимание, что удаленные элементы будут отмечены красным , добавленные — синим , а измененные — зеленым .

Сравните и объедините файлы исходного кода

Получить список изменений с помощью Java

Чтобы получить список всех изменений после сравнения, мы напишем код в соответствии со следующими шагами:

  1. Инициализируйте объект Comparer путем указания пути к исходному файлу.
  2. Вызовите метод add() и укажите путь к целевому файлу.
  3. Вызвать метод compare().
  4. Получить список изменений с помощью метода getChanges().

Пример кода ниже демонстрирует, как получить список всех изменений.

//Initialize Comparer object with source file path
try (Comparer comparer = new Comparer(sourceFile)) {
//Invoke [add][] method and specify target file path.
comparer.add(targetFile);
//Call compare method
final Path resultPath = comparer.compare();
//Get the list of changes by using getChanges method
ChangeInfo[] changes = comparer.getChanges();
//Display the changes count
System.out.println("Count of changes: " + changes.length);
}

Дополнительные параметры в библиотеке сравнения кода Java

Если вам нужно принять или отклонить несколько версий кода, возможно, вам придется применить или отменить изменения. В этом случае выполните следующие действия:

  1. Инициализировать объект класса Comparer путем исходного документа или потоком.
  2. Вызовите метод add() и укажите путь к целевому документу.
  3. Вызвать метод compare().
  4. Вызовите метод getChanges() и получите список обнаруженных изменений.
  5. Установите ComparisonAction объекта необходимых изменений в значение ComparisonAction.ACCEPT или ComparisonAction.REJECT.
  6. Вызвать метод applyChanges() и передать ему коллекцию изменений.

В следующем фрагменте кода показано, как использовать дополнительные параметры библиотеки сравнения кода.

//Initialize Comparer object with source file path
try (Comparer comparer = new Comparer(sourcePath)) {
//Invoke [add][] method and specify target file path.
comparer.add(targetPath);
//Call compare method
final Path resultPath = comparer.compare(outputPath);
//Get the list of changes by using getChanges method
ChangeInfo[] changes = comparer.getChanges();
//Set ComparisonAction of needed change object to ComparisonAction.ACCEPT value.
for (int i = 0; i < 10; i++) {
changes[i].setComparisonAction(ComparisonAction.ACCEPT);
}
//Set ComparisonAction of needed change object to ComparisonAction.REJECT value.
for (int i = 10; i < changes.length; i++) {
changes[i].setComparisonAction(ComparisonAction.REJECT);
}
// Call applyChanges method and pass collection of changes to it.
comparer.applyChanges(resultPath, new ApplyChangeOptions(changes));
}

Получить бесплатную лицензию

Вы можете получить бесплатную временную лицензию, чтобы опробовать API без ограничений на пробную версию.

Заключение

Подводя итог, мы надеемся, что вы научились сравнивать и объединять файлы исходного кода в Java с помощью библиотеки сравнения кода Java. В результате у вас есть сводка вставленного или удаленного контента. Кроме того, вы использовали способы получения списка изменений и принятия или отклонения выявленных изменений.

Вы можете посетить документацию, чтобы изучить другие функции.

Задайте вопрос

Вы можете сообщить нам о своих вопросах или запросах на нашем форуме.

Часто задаваемые вопросы

Как сравнивать и объединять файлы исходного кода в Java?

Инициализируйте класс Comparer с путем или потоком исходного документа, вызовите метод add() и установите путь или поток целевого документа. После этого вызовите метод compare() класса Comparer.

Смотрите также