Comparer et fusionner des fichiers de code source en Java

Comparer et fusionner des fichiers de code source en Java

En tant que développeur Java, si vous envisagez de créer un outil de comparaison de code ou une application ou si vous devez gérer plusieurs versions de fichiers de code, vous pouvez réfléchir à la façon de **comparer et fusionner des fichiers de code source en Java **. Si tel est le cas, cet article expliquera avec quelle facilité nous pouvons le faire sans écrire un certain nombre de lignes de code. En outre, nous verrons comment récupérer, accepter ou annuler les modifications lors de la fusion des fichiers de code source.

Cet article couvrira les points ci-dessous:

Bibliothèque Java pour comparer et fusionner les fichiers de code source

Pour comparer et fusionner les fichiers de code source, nous utiliserons Java comparaison de code library qui comprend toutes les fonctionnalités de comparaison de code source importantes et exceptionnelles. Cette bibliothèque de comparaison de code Java peut être téléchargée ou peut être installée directement en utilisant la configuration Maven comme indiqué ci-dessous.

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

Comment comparer et fusionner des fichiers de code source en Java

Supposons que nous ayons deux fichiers (source.cs et target.cs) de différentes versions d’un code source, comme illustré dans la capture d’écran suivante.

Fichiers de code source à comparer

En considérant les fichiers ci-dessus, écrivons un extrait de code en Java en suivant les étapes ci-dessous :

  1. Initialisez la classe Comparer avec le chemin ou le flux du document source.
  2. Appelez la méthode add() et spécifiez le chemin ou le flux du document cible.
  3. Appelez la méthode compare().

L’exemple de code suivant montre avec quelle facilité vous pouvez comparer et fusionner des fichiers de code source en 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);
}

En conséquence, nous obtiendrons le fichier de code source fusionné et un fichier HTML mettant en évidence les modifications apportées au code. Veuillez noter que les éléments supprimés seront marqués en rouge , les éléments ajoutés en bleu et les éléments modifiés en vert .

Comparez et fusionnez les fichiers de code source

Obtenir la liste des modifications à l’aide de Java

Pour obtenir la liste de tous les changements après comparaison, nous allons écrire le code selon les étapes suivantes :

  1. Initialisez l’objet Comparer avec le chemin du fichier source.
  2. Appelez la méthode add() et spécifiez le chemin du fichier cible.
  3. Appelez la méthode compare().
  4. Obtenez la liste des modifications à l’aide de la méthode getChanges().

L’exemple de code ci-dessous montre comment obtenir la liste de toutes les modifications.

//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);
}

Options avancées dans la bibliothèque de comparaison de code Java

Si vous devez accepter ou rejeter plusieurs versions de code, vous devrez peut-être appliquer ou annuler les modifications. Dans ce cas, veuillez suivre les étapes ci-dessous :

  1. Initialisez l’objet de la classe Comparer avec le chemin ou le flux du document source.
  2. Appelez la méthode add() et définissez le chemin du document cible.
  3. Appelez la méthode compare().
  4. Appelez la méthode getChanges() et obtenez la liste des modifications détectées.
  5. Définissez ComparisonAction de l’objet de modification nécessaire sur la valeur ComparisonAction.ACCEPT ou ComparisonAction.REJECT.
  6. Appelez la méthode applyChanges() et transmettez-lui la collection de modifications.

L’extrait de code suivant montre comment utiliser les options avancées de la bibliothèque de comparaison de code.

//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));
}

Obtenez une licence gratuite

Vous pouvez obtenir une licence temporaire gratuite pour essayer l’API sans limitation d’évaluation.

Conclusion

En résumé, nous espérons que vous avez appris à comparer et fusionner des fichiers de code source en Java à l’aide d’une bibliothèque de comparaison de code Java. En conséquence, vous avez le résumé du contenu inséré ou supprimé. De plus, vous avez suivi les étapes pour obtenir la liste des modifications et accepter ou rejeter les modifications identifiées.

Vous pouvez consulter la documentation pour découvrir d’autres fonctionnalités.

poser une question

Vous pouvez nous faire part de vos questions ou requêtes sur notre forum.

FAQ

Comment comparer et fusionner des fichiers de code source en Java ?

Initialisez la classe Comparer avec le chemin ou le flux du document source, appelez la méthode add() et définissez le chemin ou le flux du document cible. Après cela, invoquez la méthode compare() de la classe Comparer.

Voir également