通过个人资料激活/停用声纳maven插件?

时间:2013-08-26 07:00:13

标签: java maven sonarqube

我想使用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>

1 个答案:

答案 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检查你的工作。