我有一个 dockerized 多模块项目,其中两个模块使用 Java。当我启动项目时,JacoCo 形成报告并将其放入容器中(我可以在容器中找到它,它肯定在那里)。然后当 SonarQube 开始分析时,它没有找到这个报告,可能是因为报告在我的容器中。此外,SonarQube 不读取 Lombok 注释,因此它会产生很多错误的代码味道。 我尝试使用“sonar.java.libraries”属性修复此问题,但这不起作用。这些问题我该怎么办? 我用这个 docker-compose 文件运行声纳:
version: "3.7"
services:
sonarqube:
image: sonarqube:8.9.0-community
depends_on:
- sonarqube-db
ports:
- "9000:9000"
expose:
- "9000"
networks:
- sonarnet
environment:
SONAR_JDBC_URL: jdbc:postgresql://sonarqube-db:5432/sonar
SONAR_JDBC_USERNAME: sonar
SONAR_JDBC_PASSWORD: sonar
SONAR_SEARCH_JAVAADDITIONALOPTS: "-Dbootstrap.system_call_filter=false"
volumes:
- sonarqube_data:/opt/sonarqube/data
- sonarqube_extensions:/opt/sonarqube/extensions
- sonarqube_logs:/opt/sonarqube/logs
- sonarqube_temp:/opt/sonarqube/temp
sonarqube-db:
image: postgres:12
networks:
- sonarnet
environment:
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
volumes:
- postgresql:/var/lib/postgresql
# This needs explicit mapping due to https://github.com/docker-library/postgres/blob/4e48e3228a30763913ece952c611e5e9b95c8759/Dockerfile.template#L52
- postgresql_data:/var/lib/postgresql/data
sonar-cli:
image: sonarsource/sonar-scanner-cli:4.6
init: true
volumes:
- ./:/usr/src/app
command: sonar-scanner -Dsonar.projectKey=outprf -Dsonar.language=java -Dsonar.java.source=11 -Dsonar.qualitygate.wait=true -Dsonar.sources=outprf-batch/src/main,outprf-web/src/main -Dsonar.java.binaries=. -Dsonar.java.libraries=root/.m2/**/*.jar -Dsonar.scm.exclusions.disabled=true -Dsonar.exclusions=_data/**,_deploy/**,_script/**,outprf-mobile/**,outprf-ui/**,outprf-heartbeatlogs/**,**/**.html -Dsonar.coverage.jacoco.xmlReportPaths=outprf-batch/target/test-results/coverage/jacoco/jacoco.xml,outprf-web/target/test-results/coverage/jacoco/jacoco.xml
environment:
- SONAR_PROJECT_BASE_DIR=/usr/src/app
- SONAR_HOST_URL=http://sonarqube:9000
- SONAR_PROJECT_KEY=outprf
- SONAR_LOGIN=admin
- SONAR_PASSWORD=sonaradmin
networks:
- sonarnet
depends_on:
- sonarqube
networks:
sonarnet:
driver: bridge
volumes:
sonarqube_data:
sonarqube_extensions:
sonarqube_logs:
sonarqube_temp:
postgresql:
postgresql_data:
我尝试在 dockerized 多模块项目中运行 SonarQube,但声纳不读取 Lombok 注释和 JaCoCo 报告