Can not execute SonarQube analysis: Unable to determine structure of project. Probably you use Maven Advanced Reactor Options, which is not supported by SonarQube and should not be used.

执行 sonar 的 findbug 功能的时候报错:

mvn clean package -DskipTests=true org.codehaus.mojo:sonar-maven-plugin:2.6:sonar \
-Dsonar.sensor.inclusions=JavaSourceImporter,JavaSquidSensor,CpdSensor,FindbugsSensor,ProfileSensor \
-Dsonar.dynamicAnalysis=reuseReports \
-Dsonar.branch=dev_1.0 \
-Dsonar.host.url=http://xxx:9000/ \
-Dsonar.host.username=xxx \
-Dsonar.host.password=xxx \
-Dsonar.jdbc.url='jdbc:mysql://xxxx:3306/sonar?useUnicode=true&characterEncoding=utf8' \
-Dsonar.jdbc.username=mysql \
-Dsonar.jdbc.password=xx_mysql \
-Dsonar.sourceEncoding=UTF-8

执行的时候报错。

[ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.6:sonar (default-cli) on project xxx-parent: Can not execute SonarQube analysis: Unable to determine structure of project. Probably you use Maven Advanced Reactor Options, which is not supported by SonarQube and should not be used. -> [Help 1]

检查了下最近的变更,发现只有这一个地方变更比较可疑。

 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>2.4.3</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
            <configuration>
                <!-- 加了这一行 -->
                <dependencyReducedPomLocation>${basedir}/target/dependency-reduced-pom.xml</dependencyReducedPomLocation>
            </configuration>
        </execution>
    </executions>
</plugin>

dependencyReducedPomLocation 默认是在工程下面,修改这一行导致的变化是,从原来的目录结构:

parent
  |--all
       |--target
           |--xxx-1.0.jar
           |--xxx-1.0.sources.jar
       |--dependency-reduced-pom.xml

变成了

parent
  |--all
       |--target
           |--xxx-1.0.jar
           |--xxx-1.0.sources.jar
           |--dependency-reduced-pom.xml

从而导致 sonar 去解析目录结构的时候,解析到这个 pom,无法识别报错。

删掉<dependencyReducedPomLocation>${basedir}/target/dependency-reduced-pom.xml</dependencyReducedPomLocation>后恢复正常。

    原文作者:章耿
    原文地址: https://www.jianshu.com/p/cf62c9670e13
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞