这里的简单问题。我想添加声纳在每个Maven版本上执行。我想:如何使用声纳Maven插件
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.1.1</version>
</plugin>
和
<plugin>
<groupId>org.codehaus.sonar</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>5.1</version>
</plugin>
和
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>2.7.1</version>
</plugin>
因为)我无法弄清楚什么插件做的和/或b)哪一个是目前的一个。
如果我只将以上内容添加到<build>
- ><plugins>
它不会被执行(因此插件没有默认执行)。所以我当然加了<execution>
指令,而声纳被执行后,但有以下错误信息:
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>sonar</goal>
</goals>
</execution>
</executions>
未能执行目标org.sonarsource.scanner.maven:声纳Maven的插件: 3.1.1:项目org.acme.project.build上的声纳(默认):无法执行Findbugs:此项目包含未编译的Java源文件。
它似乎没有我使用哪种阶段(我试过validate
和compile
和test
和prepare-package
和package
即使不是全部的意义)。我确信在项目的任何地方都没有源代码生成。而静态类得到编译就好了。
我认为问题可能是插件被执行的每个模块,包括父pom项目。这很奇怪,因为sonar:sonar
跳过了这个项目。
但该项目结构简单,我无法找到任何不寻常的:
<groupId>group</groupId>
<artifactId>org.acme.project.build</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>org.acme.project</module>
</modules>
<profiles>
<profile>
<id>sonar</id>
<properties>
<sonar.host.url>http://sonar.acme.org/</sonar.host.url>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.1.1</version>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>sonar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
org.acme.project
除了有其自己的工件ID和父没有该项目。该命令行是:mvn clean deploy -Dsonar.login=Wile.Coyote -Dsonar.password=*********** -Psonar
日志显示声纳始终执行之前安装阶段,这当然是远远早。
那么,如何使用Sonar的Maven插件来分析我的代码?
你得到的错误是用哪个插件? – nullpointer
@nullpointer使用'sonar-maven-plugin'。 –
我的意思是使用groupId的sonar-maven-plugin?你们一起使用它们三个吗? – nullpointer