Maven 从Jenkins中的pom文件自动派生必需的SonarQube属性
情况: 我想用Jenkins(1.642.4)触发的SonarQube(5.4)分析我的项目。这是一个使用maven构建的java项目 我认为有两种方法可以触发分析:Maven 从Jenkins中的pom文件自动派生必需的SonarQube属性,maven,jenkins,continuous-integration,sonarqube,sonarqube-scan,Maven,Jenkins,Continuous Integration,Sonarqube,Sonarqube Scan,情况: 我想用Jenkins(1.642.4)触发的SonarQube(5.4)分析我的项目。这是一个使用maven构建的java项目 我认为有两种方法可以触发分析: 构建后操作“SonarQube分析与maven”,但它已被弃用,因此我不想使用它 建议使用构建后步骤“执行SonarQube扫描仪” 问题: 如果我使用不推荐的后期构建操作,sonar项目配置的属性将自动从项目pom派生 如果我使用建议的构建后步骤,我会收到异常 必须为“未知”定义以下必需属性:sonar.projectKey、s
- 在Jenkins中安装最新的SonarQube插件(目前为v2.4)
- 在SonarQube服务器下的系统配置中:选中
将SonarQube服务器配置作为构建环境变量启用注入
- 在Maven项目的配置中:
- 检查
准备声纳QUBE扫描仪环境
- 添加构建后步骤
并利用调用顶级Maven目标
字段中注入的环境变量,例如: $SONAR\u MAVEN\u GOAL-Dsonar.host.url=$SONAR\u host\u url-Dsonar.login=$SONAR\u AUTH\u令牌目标
- 检查
编辑:当说
用于Maven分析的生成后操作不推荐时。
,它指的是不再记录的旧生成后操作。警告之后的段落(在本答案中总结)实际上是建议的程序。如果仍不清楚,请进行说明。使用SonarQube扫描仪作为生成后步骤,您可以在分析属性中至少使用以下属性对其进行配置:
sonar.projectKey=${POM_ARTIFACTID}
sonar.projectName=${POM_DISPLAYNAME}
sonar.projectVersion=${POM_VERSION}
sonar.sources=src
sonar.java.binaries=target
sonar.language=java
sonar.sourceEncoding=UTF-8
POM.*变量由Jenkins从Maven GAV info映射,请看这里:感谢您的回答,但在链接的文档中,您可以看到以下文本:“Maven分析的构建后操作已弃用。Maven分析的构建后操作已弃用。”不幸的是,这个解决方案不符合我的要求。你误解了文档:不推荐的是构建后操作。我的回答和文档(警告下方)中描述的是使用标准Maven构建步骤(和环境变量注入)的推荐方法。看这个,你是对的。此maven目标作为构建后步骤执行。因此,不推荐使用该解决方案。我将删除我的答案,因为正如您所说的,这是一个坏主意,因为并没有自动化的项目结构使用。谢谢