Atlassian Stashプル リクエストで変更されたファイルをチェックするユーティリティを作成しています。目標は、各 Java ファイルを Checkstyle (または Findbugs、または PMD) で実行し、問題のある各行にプラグイン コメントを追加することです。
これを実現するには、プラグインは、Checkstyle (または他のコード スタイル強制ユーティリティ) を介して、要求内の変更された各 Java ファイルの内容を実行する必要があります。Atlassian Stash API を使用すると、変更されたファイルの内容を簡単に取得できますが、プログラムで Checkstyle を介してこれらの内容を実行することはできないようです。これを行う唯一の方法は、一時ファイルをディスクに保存して Checkstyle を実行することです。コマンドを呼び出してそれに対して jar しRuntime.getRuntime().exec(...)
ます。
Java API を使用してプログラムで実行できる単純化された Checkstyle のようなユーティリティはありますか?
基本的に、次のようなことができるものが必要です。
String contentsOfJavaFile = ; //stuff
List<Problem> problems = CheckstyleOrSomethingElse.analyze(contentsOfJavaFile);
for(Problem p : problems) {
// p.getLine();
// p.getDescription();
// add comment to Stash
}