Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Ant调用FindBugs:向java传递以空格分隔的文件列表_Ant_Findbugs - Fatal编程技术网

从Ant调用FindBugs:向java传递以空格分隔的文件列表

从Ant调用FindBugs:向java传递以空格分隔的文件列表,ant,findbugs,Ant,Findbugs,我试图从Ant内部调用FindBugs。为了控制FindBugs可用的内存量,我选择不使用ant任务。我现在遇到的问题是,我想在命令行上将一些JAR传递给FindBugs: java -jar .../findbugs.jar foo.jar bar.jar fie.jar 然而,由于这些JAR实际上是Eclipse插件,我不知道JAR的确切名称,因此我需要一种使用通配符获取列表的方法。这就是我想到的: <target name="findbugs"> <proper

我试图从Ant内部调用FindBugs。为了控制FindBugs可用的内存量,我选择不使用ant任务。我现在遇到的问题是,我想在命令行上将一些JAR传递给FindBugs:

java -jar .../findbugs.jar foo.jar bar.jar fie.jar
然而,由于这些JAR实际上是Eclipse插件,我不知道JAR的确切名称,因此我需要一种使用通配符获取列表的方法。这就是我想到的:

<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是一个逗号分隔的jar列表,而不是findbugs想要的空格分隔列表。如何将jar列表作为空格分隔的列表获取

(使用FindBugs ant任务可能更容易做到这一点。我从文档中看不出来。)

使用将路径转换为正确的格式,将其存储到属性中,然后使用,而不是使用,如下所示:

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

为了实现您提供的目标,我将引用从


您可以通过ant任务控制内存:

    <findbugs   jvmargs="-Xms512m -Xmx512m" ...>
      ...
   </findbugs>

...
适用于我使用

    <findbugs   jvmargs="-Xms512m -Xmx512m" ...>
      ...
   </findbugs>