(如下功能在2019-03-01追加的)
docker-compose安装
docker安装sonarQube是非常非常非常非常方便的。顺便说一下,我使用的是V6.7-community,附上docker-compose.yml文件
version: "3"
services:
sonarqube:
image: sonarqube:6.7-community
container_name: sonarqube-6.7
ports:
- "9000:9000"
environment:
SONARQUBE_JDBC_URL=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
SONARQUBE_JDBC_USERNAME=root
SONARQUBE_JDBC_PASSWORD=root
由于使用了版本是V6.7-community,访问http://localhost:9000时系统让生成一个token,执行如下命令即可
mvn sonar:sonar -Dsonar.host.url=http://localhost:9000 -Dsonar.login=YOUR_TOKEN
当然,也可以把这两个配置放到pom.xml中,这样以后使用如下命令就够了:
mvn sonar:sonar
maven的配置稍微变动,pom.xml中添加如下配置:
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.host.url>http://localhost:9000</sonar.host.url>
<snoar.login>YOUR_TOKEN</snoar.login>
</properties>
</profile>
不过,sonar插件得换成
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.6.0.1398</version>
</plugin>
不然,会出错。
说明:
- 为什么我知道环境变量中应该配置SONARQUBE_JDBC_URL等变量,其实我是乱找的一篇文章https://blog.csdn.net/qaz5209103/article/details/82563053,其实去官网更好,并且官网并不建议使用大写的环境变量,见https://hub.docker.com/_/sonarqube。
- 访问http://localhost:9000时,管理员的账号密码为admin/admin,见https://docs.sonarqube.org/display/SONARQUBE66/Installing+the+Server#InstallingtheServer-installingDatabaseInstallingtheDatabase ,直接搜索credentials。然而我并想不起来为什么V4.5.7时没有提供管理员的账号密码了……
- 我在公司的机器上执行没问题,但是在家里的机器上时,sonar.host.url指向了另一台机器,只好在mvn sonar:sonar -Dsonar.host.url=xxx。
- 同样的配置,使用SonarQube的V6.7和V6.7-community就不一样,前者无论如何不能把测试覆盖率添加进去,换用后者直接正常了。
- 当分析一个中型或大型项目时SonarQube可能会OOM,这时调大java参数即可sonar.ce.javaOpts=-Xmx1024m -Xms1024m
- 要多看官方文档!