Ser*_*fel 11 continuous-integration maven jenkins sonarqube sonarqube-scan
情况:
我想用Jenkins(1.642.4)触发的SonarQube(5.4)分析我的项目.这是一个用maven构建的java项目.
我看到两种触发分析的方法:
问题:
如果我使用已弃用的Post Build Action,声纳项目配置的属性将从项目pom中自动导出.
我使用推荐的Post Build Step,我收到了Exception
您必须为"未知"定义以下必需属性:sonar.projectKey,sonar.projectName,sonar.projectVersion,sonar.sources
不受欢迎的解决方案:
解决方案是通过java项目中的sonar-project.properties文件或通过Jenkins步骤中的参数提供所需的属性.
恕我直言:这是重复.所有相关信息都在Maven pom中定义:projectKey可以从artifactId派生,projectName和projectVerstion在maven中是相同的属性.特别是项目版本至关重要.我不想在每次发布后更新项目版本(或者在发布插件中编写一些代码来自动更新它).
我想要的是
我想在Jenkins中使用推荐的Post Build Step,而不需要为我的所有项目重新定义所有项目属性以使声纳高兴.相反,sonar/jenkins/plugin /应该从我的maven pom文件中获取属性.我可以使用额外的插件吗?我可以重新配置我的Jenkins-Sonar-Plugin吗?
我不想在我的pom /项目中提供任何声纳特定信息,因为该项目不应该关心声纳.它应该只包含构建项目所需的信息.
Nic*_*eam 18
文档(尽管有点混乱,请参见下面的编辑)解释了如何使用通用的构建后步骤(利用环境变量),而不是弃用的后构建操作.简而言之:
Enable injection of SonarQube server configuration as build environment variablesPrepare SonarQube Scanner environmentInvoke top-level Maven targets并利用Goals字段中注入的环境变量,例如:
$ SONAR_MAVEN_GOAL -Dsonar.host.url = $ SONAR_HOST_URL -Dsonar.login = $ SONAR_AUTH_TOKEN
编辑:当文档说明时The Post-build Action for Maven analysis is deprecated.,它指的是旧的后构建操作 ,不再记录.该警告之后的段落(在本回答中总结)确实是推荐的程序.这里的插图如果还不清楚的话.
| 归档时间: |
|
| 查看次数: |
8189 次 |
| 最近记录: |