Sonarqube 扫描使用与项目不同的 java 版本

问题描述 投票:0回答:2

我有一个用 java 8 编写的项目。它对我来说有点复杂,并且非常依赖于 java 8。但是我也碰巧有一个 SonarQube 和一个 Jenkins 实例,它试图使用 java 11 来扫描项目。

使用java 11运行时:

mvn clean verify

我在项目中遇到 java 8 依赖错误,当我使用 java 8 时,我无法使用 sonarscanner。

我还无法找到并回答。

有什么解决办法或建议吗?

java jenkins sonarqube
2个回答
0
投票

您可以使用 Jenkins 实例(使用 JDK8)构建项目并将其提交到在 JDK11 上运行的 SonarQube 实例。

使用 SonarQube 的推荐的扫描仪,您可以将项目配置为使用远程 SQ 服务器:

pom.xml

<properties>
        <sonar.host.url>https://sonarqube.cldbz.net/</sonar.host.url>
        <sonar.junit.reportsPath>target/surefire-reports</sonar.junit.reportsPath>
        <sonar.jacoco.reportPath>target/jacoco.exec</sonar.jacoco.reportPath>
        <sonar.sources>src/main</sonar.sources>
</properties>

然后使用

mvn sonar:sonar
触发 Jenkins 上的扫描过程,这会将项目的扫描结果提交到 SQ 服务器。

您甚至可以在不进行

pom.xml
更改的情况下进行测试:

mvn clean verify sonar:sonar -Dsonar.login=<token> -Dsonar.host.url=https://<sonar-server>:<port>
.


0
投票

因此,在为此创建解决方法后,我忘记了回答。那是我的事。

长话短说,我向实例安装了单独版本的 Java。重写管道,并根据 sonarqube 扫描仪使用 sh 块上的 env 更改填充终端。之后,我定义了一个清理脚本来恢复所有内容。到目前为止,我工作得非常有魅力。

© www.soinside.com 2019 - 2024. All rights reserved.