本文针对老的Java项目(就是那种WEB-INF/lib中放了一堆jar包的那种),如何使用ant进行sonar扫描。
本文不陈述sonarqube平台的搭建,如有需求可以参考文章docker版sonarqube的搭建。
本文所用软件版本:
sonarqube:sonarqube 7.9.1-community之docker版
sonarqube-ant-task:2.7.0.1612
本文示例,主要三步:
1、配置build.xml文件
在可以正常进行ant编译打包的build.xml中添加如下有关sonar的内容
<!-- Define the SonarQube global properties (the most usual way is to pass these properties via the command line) -->
<!-- Ant Command For Example: ant sonar -Dsonar.host.url=http://sonar.yourdomain.com:9000 -Dsonar.login=admin -Dsonar.password=admin -->
<property name="sonar.host.url" value="" />
<property name="sonar.login" value="" />
<property name="sonar.password" value="" />
<!-- Define the Sonar properties -->
<property name="sonar.projectKey" value="myproject:master" />
<property name="sonar.projectName" value="myproject:master" />
<property name="sonar.projectVersion" value="1.0" />
<property name="sonar.sources" value="src" />
<property name="sonar.java.binaries" value="WebRoot/WEB-INF/classes" />
<property name="sonar.sourceEncoding" value="UTF-8" />
<property name="sonar.java.libraries" value="WebRoot/WEB-INF/lib/*.jar" />
<!--<property name="sonar.scm.provider" value="git" /> -->
<!-- ========= Define SonarQube Scanner for Ant Target ========= -->
<target name="sonar" depends="compile">
<taskdef uri="antlib:org.sonar.ant" resource="org/sonar/ant/antlib.xml">
<!-- Update the following line, or put the "sonar-ant-task-*.jar" file in your "$HOME/.ant/lib" folder
<classpath path="e:/sonarqube-ant-task-2.7.0.1612.jar" />-->
</taskdef>
<!-- Execute SonarQube Scanner for Ant Analysis -->
<sonar:sonar />
</target>
2、放置sonarqube-ant-task-*.jar
给本机配置apache-ant
环境,并将sonarqube-ant-task-*.jar
拷贝到本地apache-ant/lib
目中中。
apache-ant 官方下载地址
sonarqube-ant-task-*.jar 官方下载地址
3、执行ant命令
打开cmd命令行窗口(不要用IDE自带的插件)执行命令:
ant sonar -Dsonar.host.url=http://192.168.20.66:9000 -Dsonar.login=admin -Dsonar.password=admin
等待命令执行成功(BUILD SUCCESS)后访问 sonarqube 查看结果。
(END)