情况:
我想用 Jenkins (1.642.4) 触发的 SonarQube (5.4) 分析我的项目。这是一个用 maven 构建的 java 项目。
我看到了两种触发分析的方法:
- Post Build Action "SonarQube analysis with maven" 但它已被弃用,所以我不想使用它
- 构建后步骤“执行 SonarQube 扫描仪”是推荐的方式。
问题:
如果我使用已弃用的 Post Build Action,则声纳项目配置的属性会自动从项目 pom.xml 派生。
如果我使用推荐的后期构建步骤,我会收到异常
您必须为“未知”定义以下强制性属性:sonar.projectKey、sonar.projectName、sonar.projectVersion、sonar.sources
不需要的解决方案:
解决方案是通过 java 项目中的 sonar-project.properties 文件或通过 Jenkins 步骤中的参数提供所需的属性。
恕我直言:这是重复。所有相关信息都在 Maven pom 中定义:projectKey 可以从 artifactId 派生,projectName 和 projectVerstion 在 maven 中是相同的属性。特别是 projectVersion 至关重要。我不想在每次发布后更新项目版本(或者在发布插件中编写一些代码来自动更新它)。
我想要的是
我想在 Jenkins 中使用推荐的构建后步骤,而不为我的所有项目重新定义所有项目属性以使声纳满意。相反 sonar/jenkins/plugin/whatever 应该从我的 maven pom 文件中派生属性。我可以使用其他插件吗?我可以重新配置我的 Jenkins-Sonar-Plugin 吗?
我不想在我的 pom/项目中提供任何声纳特定信息,因为该项目不应该关心声纳。它应该只包含构建项目所需的信息。