在几个月来第一次参与我的一个项目之后,我想运行Sonar来检查我是否引入了任何新的违规行为。就像我以前做过的很多次一样,我首先下载了Sonar的最新稳定版本(sonarqube4.5.2),然后用mvn sonar:sonar运行了这个项目。
一切都与Sonar配置文件一起工作,因此我决定切换到Findbug配置文件。然而,在分析该项目时,我收到了以下警告:
警告Findbug需要编译源代码。请在执行声纳之前构建项目,或者检查编译类的位置,以使Findbug能够分析您的项目。
我以前从未遇到过这个问题(在同一个项目中,但是使用了旧版本的声纳),所以我在互联网上搜索,发现我可能需要定义sonar.binaries来将Sonar指向编译的类。(在我看来,索纳尔在过去就自动发现了这一点)。不过,我在我的pom.xml中添加了以下属性:
<sonar.sources>${basedir}/src/org/myproject</sonar.sources>
<sonar.binaries>${basedir}/target/classes/org/myproject</sonar.binaries>
<sonar.java.binaries>${basedir}/target/classes/org/myproject</sonar.java.binaries>
<sonar.tests>${basedir}/test/org/myproject</sonar.tests>但是,当看到sonar.binaries现在显式地指向Maven的目标文件夹时,我仍然得到了相同的错误。
[INFO] [15:18:46.496] Source paths: src/org/myproject
[INFO] [15:18:46.496] Test paths: test/org/myproject
[INFO] [15:18:46.496] Binary dirs: target/classes/org/myproject我想要做的是:
pom.xml,使其包含以下声纳属性
sonar-project.properties文件,但没有成功mvn sonar:sonar之前使用各种Maven生命周期编译项目我真的很困惑,因为这在过去就像一种魅力。
发布于 2015-01-19 16:26:51
在使用Maven运行SonarQube分析时,不需要指定以下属性:
sonar.sourcessonar.testssonar.librariessonar.binaries,因为SonarQube Maven为您做这件事。
显然,您可以尝试重写它们,但是您所做的是错误的,因为Maven编译成“目标/类”,所以应该将"sonar.binaries“设置为这个文件夹(而不是"target/classes/org/myproject")。
因此,为了使其简单(实际上也更简单),只需从POM中删除这些属性就可以了。
发布于 2015-11-13 11:53:30
java库还有另一个设置,上面没有提到:
例如:
sonar.java.libraries=lib/*.jarhttps://stackoverflow.com/questions/28011038
复制相似问题