当 SonarQube 在不同的服务器上并且 Jenkins 在不同的服务器上时无效 sonar.source 属性
Invalid sonar.source property when SonarQube is on different Server and Jenkins on different Server
目前我正在使用 SonarQube 插件将 SonarQube 与 Jenkins 集成。我面临的问题是我的 Jenkins 运行 在与 SonarQube 不同的服务器上。因此,当我像 $workspace/src
一样传递 sonar.source 属性 时,由于服务器位置不同
,它无法找到 Jenkins 创建的我的回购的 Jenkins 工作区
我的项目是maven。以下是声纳属性的详细信息:
sonar.projectKey=$POM_GROUPID:$POM_ARTIFACTID
sonar.projectName=$POM_DISPLAYNAME
sonar.projectVersion=$POM_VERSION
sonar.sources=$WORKSPACE/src
sonar.java.binaries=**/classes/**
P.S - 当 Jenkins 和 SonarQube 在同一台服务器上时,SonarQube 能够找到工作空间的来源
如何传递位于 Jenkins 服务器上的工作区 sonar.source
,以便声纳能够定位它?
您必须使用相对路径。这个是绝对的:
sonar.sources=$WORKSPACE/src
这是相对的:
sonar.sources=src
但这不是您问题的推荐解决方案。你有 Maven,所以你应该使用 SonarScanner for Maven,步骤:
- 删除您添加的配置
- 配置来源(两个选项):
- 向您的
pom.xml
添加一个新的 属性:<sonar.sources>pom.xml,src</sonar.sources>
- 向
mvn
命令添加参数:-Dsonar.sources=pom.xml,src
- 执行 SonarScanner
sonar:sonar
示例:
mvn package sonar:sonar -Dsonar.sources=pom.xml,src
目前我正在使用 SonarQube 插件将 SonarQube 与 Jenkins 集成。我面临的问题是我的 Jenkins 运行 在与 SonarQube 不同的服务器上。因此,当我像 $workspace/src
一样传递 sonar.source 属性 时,由于服务器位置不同
我的项目是maven。以下是声纳属性的详细信息:
sonar.projectKey=$POM_GROUPID:$POM_ARTIFACTID
sonar.projectName=$POM_DISPLAYNAME
sonar.projectVersion=$POM_VERSION
sonar.sources=$WORKSPACE/src
sonar.java.binaries=**/classes/**
P.S - 当 Jenkins 和 SonarQube 在同一台服务器上时,SonarQube 能够找到工作空间的来源
如何传递位于 Jenkins 服务器上的工作区 sonar.source
,以便声纳能够定位它?
您必须使用相对路径。这个是绝对的:
sonar.sources=$WORKSPACE/src
这是相对的:
sonar.sources=src
但这不是您问题的推荐解决方案。你有 Maven,所以你应该使用 SonarScanner for Maven,步骤:
- 删除您添加的配置
- 配置来源(两个选项):
- 向您的
pom.xml
添加一个新的 属性:<sonar.sources>pom.xml,src</sonar.sources>
- 向
mvn
命令添加参数:-Dsonar.sources=pom.xml,src
- 向您的
- 执行 SonarScanner
sonar:sonar
示例:
mvn package sonar:sonar -Dsonar.sources=pom.xml,src