Vergelijk en voeg broncodebestanden samen in Java

Vergelijk en voeg broncodebestanden samen in Java

Als u als Java-ontwikkelaar een tool voor broncodevergelijking of -toepassing gaat bouwen of als u mogelijk meerdere versies van codebestanden moet beheren, kunt u nadenken over hoe u **broncodebestanden in Java kunt vergelijken en samenvoegen **. Zo ja, dan leggen we in dit artikel uit hoe gemakkelijk we dit kunnen doen zonder een aantal regels code te schrijven. Bovendien zullen we zien hoe we de wijzigingen kunnen ophalen, accepteren of negeren terwijl we de broncodebestanden samenvoegen. Dit artikel behandelt de onderstaande punten:

  • [Java-bibliotheek om broncodebestanden te vergelijken en samen te voegen][1]
  • [Hoe broncodebestanden in Java te vergelijken en samen te voegen][2]
  • [Verkrijg de lijst met wijzigingen met Java][3]
  • [Geavanceerde opties in Java-codevergelijkingsbibliotheek][4]

Java-bibliotheek om broncodebestanden te vergelijken en samen te voegen

Om broncodebestanden te vergelijken en samen te voegen, zullen we Java codevergelijking [bibliotheek][20] gebruiken, die alle belangrijke en uitstekende functies voor broncodevergelijking bevat. Deze bibliotheek voor het vergelijken van Java-code kan worden [gedownload][16] of kan direct worden geïnstalleerd met behulp van de Maven-configuratie zoals hieronder weergegeven.

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

Broncodebestanden in Java vergelijken en samenvoegen

Stel dat we twee bestanden hebben (source.cs en target.cs) van verschillende versies van een broncode, zoals weergegeven in de volgende schermafbeelding.

Broncodebestanden om te vergelijken
Laten we, uitgaande van de bovenstaande bestanden, een codefragment in Java schrijven door de onderstaande stappen te volgen:

  1. Initialiseer de klasse [Comparer][5] met het pad of de stroom van het brondocument.
  2. Roep de methode [add()][6] aan en geef het pad of de stroom van het doeldocument op.
  3. Roep de methode [vergelijk()][7] aan. Het volgende codevoorbeeld laat zien hoe gemakkelijk u broncodebestanden in Java kunt vergelijken en samenvoegen.
    //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);
    }
    Als gevolg hiervan krijgen we het samengevoegde broncodebestand en een [HTML][13]-bestand waarin de wijzigingen in de code worden gemarkeerd. Houd er rekening mee dat de verwijderde elementen worden gemarkeerd in rood , de toegevoegde - in blauw en de gewijzigde - in groen .
    Vergelijk en voeg broncodebestanden samen

Download de lijst met wijzigingen met behulp van Java

Om de lijst met alle wijzigingen na vergelijking te krijgen, zullen we de code schrijven volgens de volgende stappen:

  1. Initialiseer het [Comparer][5]-object met het pad van het bronbestand.
  2. Roep de methode [add()][6] aan en geef het pad van het doelbestand op.
  3. Roep de methode [vergelijk()][7] aan.
  4. Haal de lijst met wijzigingen op met de methode [getChanges()][8]. Het onderstaande codevoorbeeld laat zien hoe u de lijst met alle wijzigingen kunt ophalen.
    //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);
    }

Geavanceerde opties in Java-codevergelijkingsbibliotheek

Als u verschillende versies van code moet accepteren of afwijzen, moet u de wijzigingen mogelijk toepassen of negeren. Volg in dat geval de onderstaande stappen:

  1. Initialiseer het object van de klasse [Comparer][5] met het pad of de stroom van het brondocument.
  2. Roep de methode [add()][6] aan en stel het pad van het doeldocument in.
  3. Roep de methode [vergelijk()][7] aan.
  4. Roep de methode [getChanges()][8] aan en verkrijg de lijst met gedetecteerde wijzigingen.
  5. Stel [ComparisonAction][9] van het benodigde wijzigingsobject in op de waarde [ComparisonAction.ACCEPT][10] of [ComparisonAction.REJECT][11].
  6. Roep de methode [applyChanges()][12] aan en geef de verzameling wijzigingen door. Het volgende codefragment laat zien hoe u de geavanceerde opties van de codevergelijkingsbibliotheek kunt gebruiken.
    //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));
    }

Ontvang een gratis licentie

U kunt een [gratis tijdelijke licentie][14] krijgen om de API zonder evaluatiebeperkingen uit te proberen.

Conclusie

Kortom, we hopen dat u hebt geleerd hoe u programmatisch broncodebestanden kunt vergelijken en samenvoegen met behulp van een Java-codevergelijkingsbibliotheek. Als resultaat hebt u de samenvatting van ingevoegde of verwijderde inhoud. Verder heeft u de manieren doorlopen om de wijzigingslijst op te halen en de geïdentificeerde wijzigingen te accepteren of af te wijzen. U kunt de [documentatie][15] bezoeken om andere functies te verkennen.

Een vraag stellen

U kunt uw vragen of vragen aan ons stellen op ons [forum][18].

Veelgestelde vragen

Hoe broncodebestanden in Java vergelijken en samenvoegen? Initialiseer de klasse [Comparer][5] met het pad of de stroom van het brondocument, roep de methode [add()][6] aan en stel het pad of de stroom van het doeldocument in. Roep daarna de methode [compare()][7] van de klasse [Comparer][5] aan.

Zie ook