我在多模块项目中遇到错误,结构很简单,看起来像这样:
root module a module b module c pom.xml
使用maven命令行后: clean sonar:sonar deploy
clean sonar:sonar deploy
我是这个错误:
无法在项目X上执行目标org.sonarsource.scanner.maven:sonar-maven- plugin:3.3.0.603:sonar(default-cli):请为您的项目的已编译类提供sonar.java.binaries属性-> [帮助1]
编辑:这是我的结构 pom.xml
pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <groupId>groupeId</groupId> <artifactId>artifactId</artifactId> <version>version</version> <packaging>pom</packaging> <name>${project.artifactId}-parent</name> <description>description</description> <build> <plugins> <plugin> <groupId>org.sonarsource.scanner.maven</groupId> <artifactId>sonar-maven-plugin</artifactId> <version>3.3.0.603</version> </plugin> </plugins> </build> <modules> <module>module a</module> <module>module b</module> <module>module c</module> </modules> </project>
您以错误的顺序运行Maven步骤:
clean
sonar:sonar
deploy
尝试以下方法:
mvn clean deploy sonar:sonar
现在,如果您要反对的是您不希望实际上“部署” jar,直到/除非更改的代码通过了质量门,否则……这需要不同的工作流程:
mvn clean package sonar:sonar // check quality gate status // if (qualityGateOk) { deploy }
最后两个步骤的详细信息将取决于您的CI基础结构。但是对于詹金斯来说,步骤2已被详细记录