java sonar结合maven使用
什么是sonar
Sonar(SonarQube)是一个开源平台,用于管理源代码的质量。Sonar 不只是一个质量数据报告工具,更是代码质量管理平台。支持的语言包括:Java、PHP、C#、C、Cobol、PL/SQL、Flex 等。Sonar一个Web系统,展现了静态代码扫描的结果,结果是可以自定义的 ,支持多种语言的原理是它的扩展性。
sonar 安装
如何结合maven使用
sonar是对代码进行质量扫描,应该就在部署之前进行的,部署前进行的就是代码打包,现在对java而已都是用maven进行管理和打包的动作,所以代码扫描和soanr的结合也算是理所应当了。
和maven的结合使用可以查看sonar的文档
- 全局配置maven的setting文件(在$MAVEN_HOME/conf下)
<settings>
<pluginGroups>
<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>
<profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- Optional URL to server. Default value is http://localhost:9000 -->
<sonar.host.url>
http://myserver:9000
</sonar.host.url>
</properties>
</profile>
</profiles>
</settings>
- 调用sonar进行代码扫描
结合多指令使用
mvn clean verify sonar:sonar -Dsonar.login=myAuthenticationToken
分开指令使用
mvn clean install
mvn sonar:sonar -Dsonar.login=myAuthenticationToken
指定sonar插件版本使用
mvn org.sonarsource.scanner.maven:sonar-maven-plugin:3.7.0.1746:sonar
- sonar一般使用到的变量
-Dsonar.login=myAuthenticationToken soanr的token
-Dsonar.host.url sonar的地址
-Dsonar.projectKey sonar项目名
-Dsonar.analysis.自定义变量 sonar自定义变量,用于接口回传
- 在maven项目的pom文件锁定sonar插件的版本
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.7.0.1746</version>
</plugin>
</plugins>
</pluginManagement>
</build>
- sonar maven的官方示例
https://github.com/SonarSource/sonar-scanning-examples/tree/master/sonarqube-scanner-maven
结果展示
总结
sonar代码扫描在maven中的应用很简单,不会侵入代码,简单方便。运用sonar能提高代码的品质,规避不必要的代码缺陷,提升代码鲁棒性,大家一起加油。