我正在编写一个实用程序来检查修改后的文件的Atlassian Stash拉取请求 - 目标是通过 Checkstyle(或 Findbugs 或 PMD)运行每个 Java 文件,然后在有问题的每一行上添加插件注释。
为此,插件必须通过 Checkstyle(或其他代码样式强制实用程序)运行请求中每个已修改Java 文件的内容。Atlassian Stash API 使得获取修改文件的内容变得非常容易,但似乎无法通过 Checkstyle 以编程方式运行这些内容 - 唯一的方法是将临时文件保存在磁盘上并运行 Checkstyle通过调用Runtime.getRuntime().exec(...)
命令来对抗它。
是否有任何简化的类似 Checkstyle 的实用程序可以使用 Java API 以编程方式运行?
我基本上需要一些可以做这样的事情:
String contentsOfJavaFile = ; //stuff
List<Problem> problems = CheckstyleOrSomethingElse.analyze(contentsOfJavaFile);
for(Problem p : problems) {
// p.getLine();
// p.getDescription();
// add comment to Stash
}