Confronta e unisci i file di codice sorgente in Java

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:

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.

File di codice sorgente da confrontare

Considerando i file sopra, scriviamo un frammento di codice in Java seguendo i passaggi come indicato di seguito:

  1. Inizializza Comparer classe con il percorso o lo stream del documento sorgente.
  2. Invoke add() method and specify target document’s path or stream.
  3. 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.

Confronta e unisci i file di codice sorgente

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:

  1. Inizializza Comparer oggetto con il percorso del file di origine.
  2. Invoca add() metodo e specifica il percorso del file di destinazione.
  3. Invoca compare() metodo.
  4. 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:

  1. Inizializza l’oggetto della classe Comparer con il percorso del documento sorgente o stream.
  2. Chiama add() metodo e imposta il percorso del documento di destinazione.
  3. Invoca compare() metodo.
  4. Invoca getChanges() metodo e ottieni l’elenco delle modifiche rilevate.
  5. Imposta ComparisonAction dell’oggetto di cambiamento necessario su ComparisonAction.ACCEPT o ComparisonAction.REJECT valore.
  6. 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.

See Also