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 でソース コード ファイルを比較およびマージする方法
次のスクリーンショットに示すように、ソース コードの異なるバージョンの 2 つのファイル (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() メソッドを呼び出して、ターゲット ドキュメントのパスまたはストリームを設定します。その後、Comparerクラスのcompare()メソッドを呼び出します。