Как Java-разработчик, если вы собираетесь создать инструмент сравнения исходного кода или приложение, или вам может понадобиться управлять несколькими версиями файлов кода, вы можете подумать о том, как **сравнивать и объединять файлы исходного кода в Java. **. Если да, то эта статья объяснит, как легко мы можем это сделать, не написав несколько строк кода. Кроме того, мы увидим, как мы можем получить, принять или отменить изменения при слиянии файлов исходного кода.
В этой статье будут рассмотрены пункты, указанные ниже:
- Библиотека 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, выполнив шаги, указанные ниже:
- Инициализируйте класс Comparer с помощью пути или потока исходного документа.
- Вызовите метод add() и укажите путь или поток целевого документа.
- Вызвать метод 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
Чтобы получить список всех изменений после сравнения, мы напишем код в соответствии со следующими шагами:
- Инициализируйте объект Comparer путем указания пути к исходному файлу.
- Вызовите метод add() и укажите путь к целевому файлу.
- Вызвать метод compare().
- Получить список изменений с помощью метода 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
Если вам нужно принять или отклонить несколько версий кода, возможно, вам придется применить или отменить изменения. В этом случае выполните следующие действия:
- Инициализировать объект класса Comparer путем исходного документа или потоком.
- Вызовите метод add() и укажите путь к целевому документу.
- Вызвать метод compare().
- Вызовите метод getChanges() и получите список обнаруженных изменений.
- Установите ComparisonAction объекта необходимых изменений в значение ComparisonAction.ACCEPT или ComparisonAction.REJECT.
- Вызвать метод 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.