使用mvn sonar:sonar运行Sonar分析时忽略了sonar-project.properties文件。

24
3个回答

31

没错:Maven的扫描器会忽略sonar-project.properties文件。

如果要在使用Maven扫描器时传递分析参数, 可以将它们设置为<properties>标签中的内容,例如:pom.xml

<properties>
    <sonar.host.url>http://yourserver</sonar.host.url>
</properties>

或者,您也可以使用命令行上的-D传递参数,例如:

mvn sonar:sonar -Dsonar.host.url=http://yourserver

18

另一种方法是通过Maven Properties Plugin配置读取。

问答

   <build>    
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>properties-maven-plugin</artifactId>
        <version>1.0.0</version>
        <executions>
          <execution>
            <phase>initialize</phase>
            <goals>
              <goal>read-project-properties</goal>
            </goals>
            <configuration>
              <files>
                <file>sonar-project.properties</file>
              </files>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>

3
有没有办法使用 mvn sonar:sonar 命令触发此操作?对我而言,只有在类似于 mvn verify sonar:sonar 这样的命令下才有效。 - Tiris
尝试运行 mvn properties:read-project-properties sonar:sonar请参阅 https://www.mojohaus.org/properties-maven-plugin/ - Paul Verest
我不知道这是否已经起作用并且认为这是可以接受的答案,但官方文档说这是不可能的,我引用一下:通常情况下,任何这些参数都可以像任何其他maven属性一样进行配置(按照覆盖优先级的顺序):在调用扫描器目标的mvn命令行上,使用-D参数前缀。 在项目的pom.xml文件中。与普通的SonaScanner CLI不同,SonarScanner for Maven使用pom.xml而不是sonar-project.properties文件。 在全局settings.xml中。 - Amaresh Kulkarni

0
从这份文档Sonar Scanner For Maven来看,似乎Maven Sonar Scanner并没有使用sonar-project.properties文件。而另一方面,sonar-scanner CLI则有使用该文件。因此,我选择安装sonar-scanner CLI。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接