
Confronta e unisci i file di codice sorgente in Java
Come sviluppatore Java, se intendi creare uno strumento o un’applicazione di confronto del codice sorgente o potresti aver bisogno di gestire diverse versioni di file di codice, allora potresti pensare a come confrontare e unire i file di codice sorgente in Java. Se è così, questo articolo spiegherà quanto facilmente possiamo fare questo senza scrivere un numero elevato di righe di codice. Inoltre, vedremo come possiamo recuperare, accettare o scartare le modifiche durante l’unione dei file di codice sorgente.
Questo articolo tratterà i punti indicati di seguito:
- Libreria Java per confrontare e unire file di codice sorgente
- Come confrontare e unire i file di codice sorgente in Java
- Ottieni l’elenco delle modifiche utilizzando Java
- Opzioni avanzate nella libreria di confronto del codice Java
Java libreria per confrontare e unire file di codice sorgente
Per confrontare e unire file di codice sorgente, utilizzeremo una library di confronto del codice Java che consiste in tutte le funzionalità di confronto del codice sorgente importanti e straordinarie. Questa library di confronto del codice Java può essere sia downloaded che installata direttamente usando la configurazione Maven come indicato di seguito.
<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>
Come confrontare e unire i file di codice sorgente in Java
Supponiamo di avere due file (source.cs e target.cs) di versioni diverse di un codice sorgente come mostrato nello screenshot seguente.

Considerando i file sopra, scriviamo un frammento di codice in Java seguendo i passaggi come indicato di seguito:
- Inizializza Comparer classe con il percorso o lo stream del documento sorgente.
- Invoke add() method and specify target document’s path or stream.
- Invoca compare() metodo.
Il seguente esempio di codice mostra quanto sia facile confrontare e unire file di codice sorgente in Java.
//Instanziare l'oggetto Comparer con il percorso del documento sorgente o stream;
try (Comparer comparer = new Comparer(SourceFile)) {
// Invoca il metodo add e specifica il percorso del documento di destinazione o lo stream.
comparer.add(TargetFile);
//Invoca il metodo compare.
final Path resultPath = comparer.compare(ResultPath);
}
Di conseguenza, otterremo il file di codice sorgente unito e un HTML file che evidenzia le modifiche nel codice. Si prega di notare che gli elementi eliminati saranno contrassegnati in <font color="red">red, quelli aggiunti – in <font color="blue">blue, e quelli modificati – in <font color="green">green.

Ottieni l’elenco delle modifiche utilizzando Java
Per ottenere l’elenco di tutte le modifiche dopo il confronto, scriveremo il codice secondo i seguenti passaggi:
- Inizializza Comparer oggetto con il percorso del file di origine.
- Invoca add() metodo e specifica il percorso del file di destinazione.
- Invoca compare() metodo.
- Ottieni l’elenco delle modifiche utilizzando il metodo getChanges().
Il campione di codice qui sotto dimostra come ottenere l’elenco di tutte le modifiche.
//Inizializza l'oggetto Comparer con il percorso del file sorgente
try (Comparer comparer = new Comparer(sourceFile)) {
//Invoca [add][] metodo e specifica il percorso del file di destinazione.
comparer.add(targetFile);
//Chiamare il metodo compare
final Path resultPath = comparer.compare();
//Ottieni l'elenco delle modifiche utilizzando il metodo getChanges
ChangeInfo[] changes = comparer.getChanges();
//Mostra il conteggio delle modifiche
System.out.println("Count of changes: " + changes.length);
}
Opzioni avanzate nella libreria di confronto del codice Java
Se devi accettare o rifiutare diverse versioni di codice, potresti dover applicare o scartare le modifiche. In questo caso, ti preghiamo di seguire i passaggi indicati di seguito:
- Inizializza l’oggetto della classe Comparer con il percorso del documento sorgente o stream.
- Chiama add() metodo e imposta il percorso del documento di destinazione.
- Invoca compare() metodo.
- Invoca getChanges() metodo e ottieni l’elenco delle modifiche rilevate.
- Imposta ComparisonAction dell’oggetto di cambiamento necessario su ComparisonAction.ACCEPT o ComparisonAction.REJECT valore.
- Call applyChanges() method and pass collection of changes to it.
Il seguente frammento di codice mostra come utilizzare le opzioni avanzate della libreria di confronto del codice.
//Inizializza l'oggetto Comparer con il percorso del file sorgente
try (Comparer comparer = new Comparer(sourcePath)) {
//Invoca [add][] metodo e specifica il percorso del file di destinazione.
comparer.add(targetPath);
//Call compare method
final Path resultPath = comparer.compare(outputPath);
//Ottieni l'elenco delle modifiche utilizzando il metodo getChanges
ChangeInfo[] changes = comparer.getChanges();
//Imposta ComparisonAction dell'oggetto di modifica necessario al valore ComparisonAction.ACCEPT.
for (int i = 0; i < 10; i++) {
changes[i].setComparisonAction(ComparisonAction.ACCEPT);
}
//Imposta ComparisonAction dell'oggetto di modifica necessario al valore ComparisonAction.REJECT.
for (int i = 10; i < changes.length; i++) {
changes[i].setComparisonAction(ComparisonAction.REJECT);
}
// Chiama il metodo applyChanges e passa la collezione di modifiche ad esso.
comparer.applyChanges(resultPath, new ApplyChangeOptions(changes));
}
Ottieni una Licenza Gratuita
Puoi ottenere una licenza temporanea gratuita per provare l’API senza limitazioni di valutazione.
Conclusione
Per riassumere, speriamo che tu abbia imparato come confrontare e unire i file di codice sorgente in modo programmatico utilizzando una libreria di confronto del codice Java. Di conseguenza, hai ottenuto il riepilogo del contenuto inserito o eliminato. Inoltre, hai esaminato i modi per ottenere l’elenco delle modifiche e accettare o rifiutare le modifiche identificate.
Puoi visitare la documentazione per esplorare altre funzionalità.
Fai una domanda
Puoi farci sapere le tue domande o richieste sul nostro forum.
FAQs
Come confrontare e unire i file di codice sorgente in Java?
Inizializza la classe Comparer con il percorso o lo stream del documento sorgente, chiama il metodo add() e imposta il percorso o lo stream del documento target. Dopo di che, invoca il metodo compare() della classe Comparer.