我想使用Sonar插件,只有在我的Maven配置文件中激活它才会执行。目前Sonar在每次编译时运行。
问题是,对于没有在本地安装Sonar应用程序的其他团队成员,构建将失败。检查pom.xml,以便所有团队成员都获得相同的副本,包括声纳配置,但我不希望他们仅为了禁用Sonar而修改它(他们可能无意中检查了他们的修改后的副本)。 p>
请告知如何配置Maven(.m2 / settings.xml)和/或pom.xml,以便本地配置文件可以启用/禁用Sonar功能。
以下是每个项目的pom.xml中的Sonar配置:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<id>make-sonar</id>
<phase>compile</phase>
<goals>
<goal>sonar</goal>
</goals>
</execution>
</executions>
</plugin>
答案 0 :(得分:1)
只需在Maven配置文件中包含您的配置:
<profiles>
<profile>
<id>sonar</id>
<build>
<plugins>
<!-- Your Sonar config here -->
</plugins>
</build>
</profile>
</profiles>
然后在启用配置文件的情况下调用Maven:
mvn clean install -Psonar
从Maven 2.09开始,您可以根据文件的存在自动启用插件。因此,您可以将以下activation
添加到上述个人资料中:
<activation>
<file>
<exists>/full/path/to/sonar/installation</exists>
</file>
</activation>
如果绝对路径让你发痒(就像他们对我做的那样),exists
也可以插入系统属性。你可以快速过火,POM不应该对项目建立的系统有所了解,所以要小心谨慎。
你的困境表明了一个更深层次的问题:为什么只有你正在寻找SonarQube?软件质量是共同的努力,SonarQube通过在中心位置自动运行而蓬勃发展。您可能希望在CI环境中安装SonarQube并对每个构建运行分析。然后你和你的同事可以在提交之前运行SonarQube IDE检查你的工作。