Ant 蚂蚁三叶草与声纳

Ant 蚂蚁三叶草与声纳,ant,sonarqube,clover,Ant,Sonarqube,Clover,我有一个用三叶草和声纳目标构建的蚂蚁,示例命令是 ant clover.all sonar_all 目前我使用 <clover-setup initstring="${clover.db.file}"> <fileset dir="${src.dir}"> ... 编辑1: 如果找到此项,建议在ANT脚本中编译两次。由于ant构建只会在我看不到如何切换属性中间构建以确保编译任务运行两次时加载属性,一次启用clover,第二次不启用。这里的基本问题是cl

我有一个用三叶草和声纳目标构建的蚂蚁,示例命令是

ant clover.all sonar_all
目前我使用

 <clover-setup initstring="${clover.db.file}">
      <fileset dir="${src.dir}">
 ...
编辑1:
如果找到此项,建议在ANT脚本中编译两次。由于ant构建只会在我看不到如何切换属性中间构建以确保编译任务运行两次时加载属性,一次启用clover,第二次不启用。

这里的基本问题是clover生成的源代码和类让sonar头疼,但是不可能通过ant任务分离生成路径。我的黑客解决方案是将后clover阶段的所有类文件复制到sonar目标开始处的新文件夹中,然后删除clover类,前提是它们的名称中包含字符串$\uu CLR。然后,我指示sonar使用原始类集生成其度量

<target name="sonar">

   <delete dir="${build.dir}/sonarclasses"/>
   <mkdir dir="${build.dir}/sonarclasses/com"/>
   <copy todir="${build.dir}/sonarclasses/com" verbose="true" failonerror="false">
       <fileset dir="${build.classes.dir}/com" excludes="com/**/*$__CLR*.class"/>
   </copy>

   <pathconvert pathsep="," property="echo.path.compile" refid="core.class.path"/>
   <property name="sonar.libraries" value="${echo.path.compile}"/>
   <property name="sonar.sources" value="${src.dir}"/>
   <property name="sonar.projectName" value="Touchpoint"/>
   <property name="sonar.binaries" value="${build.dir}/sonarclasses"/>
   <property name="sonar.tests" value=""/>
   <property name="sonar.host.url" value="${sonar.host.url}"/>
   <property name="sonar.jdbc.url" value="${sonar.jdbc.url}"/>
   <property name="sonar.jdbc.driverClassName" value="com.mysql.jdbc.Driver"/>
   <property name="sonar.jdbc.username" value="${sonar.jdbc.username}"/>
   <property name="sonar.jdbc.password" value="${sonar.jdbc.password}"/>
   <property name="sonar.exclusions" value=""/>
   <property name="sonar.dynamicAnalysis" value="reuseReports"/>
   <property name="sonar.surefire.reportsPath" value="${build.dir}/utest"/>
   <property name="sonar.clover.reportPath" value="${build.dir}/clover/report/clover.xml"/>
   <property name="sonar.java.source" value="1.6"/>
   <property name="sonar.java.target" value="1.6"/>
   <!--<property name="sonar.findbugs.reportPath" value="${build.dir}/findbugs/findbugs.xml"/>-->
   <sonar:sonar
 ant clover.all clover_off sonar_all
<target name="sonar">

   <delete dir="${build.dir}/sonarclasses"/>
   <mkdir dir="${build.dir}/sonarclasses/com"/>
   <copy todir="${build.dir}/sonarclasses/com" verbose="true" failonerror="false">
       <fileset dir="${build.classes.dir}/com" excludes="com/**/*$__CLR*.class"/>
   </copy>

   <pathconvert pathsep="," property="echo.path.compile" refid="core.class.path"/>
   <property name="sonar.libraries" value="${echo.path.compile}"/>
   <property name="sonar.sources" value="${src.dir}"/>
   <property name="sonar.projectName" value="Touchpoint"/>
   <property name="sonar.binaries" value="${build.dir}/sonarclasses"/>
   <property name="sonar.tests" value=""/>
   <property name="sonar.host.url" value="${sonar.host.url}"/>
   <property name="sonar.jdbc.url" value="${sonar.jdbc.url}"/>
   <property name="sonar.jdbc.driverClassName" value="com.mysql.jdbc.Driver"/>
   <property name="sonar.jdbc.username" value="${sonar.jdbc.username}"/>
   <property name="sonar.jdbc.password" value="${sonar.jdbc.password}"/>
   <property name="sonar.exclusions" value=""/>
   <property name="sonar.dynamicAnalysis" value="reuseReports"/>
   <property name="sonar.surefire.reportsPath" value="${build.dir}/utest"/>
   <property name="sonar.clover.reportPath" value="${build.dir}/clover/report/clover.xml"/>
   <property name="sonar.java.source" value="1.6"/>
   <property name="sonar.java.target" value="1.6"/>
   <!--<property name="sonar.findbugs.reportPath" value="${build.dir}/findbugs/findbugs.xml"/>-->
   <sonar:sonar