2009-08-31 11 views
3

我试图从Ant内部调用FindBugs。为了控制可用于FindBugs的内存量,我选择不使用ant任务。我现在的问题是,我想通过一些在命令行罐子来FindBugs的:从Ant调用FindBugs:将空格分隔的文件列表传递给java

java -jar .../findbugs.jar foo.jar bar.jar fie.jar 

然而,由于这些罐子实际上是Eclipse插件,我不知道的确切名称罐子,所以我需要一种方法来使用通配符来获取列表。这是我想出来的:

<target name="findbugs"> 
    <property name="findbugs.home" location="${user.home}/eclipse/findbugs" /> 
    <path id="findbugs.input"> 
     <fileset dir="${testDirectory}/eclipse/plugins"> 
      <include name="my.plugins.*.jar" /> 
     </fileset> 
    </path> 
    <path id="findbugs.auxinput"> 
     <fileset dir="${testDirectory}/eclipse/plugins"> 
      <include name="*.jar" /> 
      <include name="**/*.jar" /> 
     </fileset> 
    </path> 
    <java jar="${findbugs.home}/lib/findbugs.jar" fork="true"> 
     <jvmarg value="-Xmx1048m" /> 
     <arg value="-textui" /> 
     <arg value="-output" /> 
     <arg value="findbugs.xml" /> 
     <arg value="-xml" /> 
     <arg value="-exclude" /> 
     <arg value="${basedir}/findbugsExclude.xml" /> 
     <arg value="-auxclasspath" /> 
     <arg pathref="findbugs.auxinput"/> 
     <arg pathref="findbugs.input" /> 
    </java> 
</target> 

然而,findbugs.input pathref是罐子的逗号分隔列表,而不是用空格隔开的FindBugs的希望吧。我如何获得罐子列表作为空格分隔列表?

(这是可能更容易做与FindBugs的蚂蚁的任务。我真的不能从文档告诉。)

回答

2

使用pathconvert,像这样:

<pathconvert pathsep="," property="findbugs.input.csv" refid="findbugs.input"/> 

在您提供的目标实现,我从<arg pathref="findbugs.input" /> 改变了参考<arg value="${findbugs.input.csv}" />

<target name="findbugs"> 
    <property name="findbugs.home" location="${user.home}/eclipse/findbugs" /> 
    <path id="findbugs.input"> 
     <fileset dir="${testDirectory}/eclipse/plugins"> 
      <include name="my.plugins.*.jar" /> 
     </fileset> 
    </path> 
    <pathconvert pathsep="," property="findbugs.input.csv" 
       refid="findbugs.input"/> 

    <path id="findbugs.auxinput"> 
     <fileset dir="${testDirectory}/eclipse/plugins"> 
      <include name="*.jar" /> 
      <include name="**/*.jar" /> 
     </fileset> 
    </path> 

    <echo message="${findbugs.input.csv}" /> 

    <java jar="${findbugs.home}/lib/findbugs.jar" fork="true"> 
     <jvmarg value="-Xmx1048m" /> 
     <arg value="-textui" /> 
     <arg value="-output" /> 
     <arg value="findbugs.xml" /> 
     <arg value="-xml" /> 
     <arg value="-exclude" /> 
     <arg value="${basedir}/findbugsExclude.xml" /> 
     <arg value="-auxclasspath" /> 
     <arg pathref="findbugs.auxinput"/> 
     <arg value="${findbugs.input.csv}" /> 
    </java> 
</target> 
+0

作品我''和'” – 2015-05-28 21:22:40

1

使用<pathconvert>将路径转换成合适的格式,其存储成属性然后使用< ARG值的... >代替< ARG pathref ... >

0

您可以控制从蚂蚁任务的内存:

<findbugs jvmargs="-Xms512m -Xmx512m" ...> 
     ... 
    </findbugs> 
相关问题