从GitLab CI运行sonarqube时出错



我正在使用Sonarqube优化我的项目中的代码质量,并尝试将其添加到GitLab上的CI周期中,但我遇到了一个错误。当我在我的IntelliJ终端中运行mvn-sonar:sonar时,它可以工作,但在我的GitLab CI中执行时不知何故抛出了一个错误。错误是:

未能在项目rlstop上执行目标org.sonarsource.scanner.maven:sonar maven插件:3.7.0.1746:sonar(默认cli(:您的项目包含.java文件,请使用sonar.java.binaries属性提供已编译的类,或使用sonar.exclusions属性将它们从分析中排除。

我的gitlab-ci.yml:

stages:
- build
- test
- sonarqube
build:
script: "mvn compile"
test:
script: "mvn test"
stage: test
sonarqube:
script: "mvn sonar:sonar"
stage: sonarqube

application.properties:

spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.datasource.url=...
spring.datasource.username=...
spring.datasource.password=...
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql = true
## Hibernate Properties
# The SQL dialect makes Hibernate generate better SQL for the chosen database
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.SQLServer2012Dialect
# Hibernate ddl auto (create, create-drop, validate, update)
spring.jpa.hibernate.ddl-auto = update
sonar.java.binaries=bin

有人知道这个错误意味着什么以及如何解决它吗?

错误提到您需要使用sonar.java.binaries提供java的编译类

在你的.gitlab-ci.yml文件中:

stages:
- build
- test
- sonarqube
build:
stage: build
script: "mvn compile"
test:
stage: test
script: "mvn test"
sonarqube:
stage: sonarqube
script: "mvn -U install sonar:sonar -Dsonar.projectKey=Gitlab-CI -Dsonar.projectName=Gitlab-CI -Dsonar.sources=. -Dsonar.java.binaries=**/* -Dsonar.language=java"

如果您在pom.xml中添加了<sonar-java-binaries>target/classes</sonar-java-binaries>,请删除。只有,在pom.xml 的插件部分有maven声纳插件的条目

希望这能对你有所帮助。

最新更新