执行 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]
检查了下最近的变更,发现只有这一个地方变更比较可疑。
org.apache.maven.plugins
maven-shade-plugin
2.4.3
package
shade
${basedir}/target/dependency-reduced-pom.xml
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,无法识别报错。
删掉
后恢复正常。