Извикване на FindBugs от Ant: предаване на разделен с интервали списък с файлове към java

Опитвам се да извикам FindBugs от вътрешността на Ant. За да контролирам количеството памет, достъпно за FindBugs, избрах да не използвам ant-task. Проблемът, който имам сега, е, че искам да предам няколко буркана в командния ред на FindBugs:

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="/bgfindbugs.auxinput"/>
        <arg pathref="/bgfindbugs.input" />
    </java>
</target>

Въпреки това findbugs.input pathref е разделен със запетая списък с буркани, а не разделен с интервал, както иска FindBugs. Как да получа списъка с буркани като списък, разделен с интервал?

(Това може би е по-лесно да се направи със задачата FindBugs ant-task. Не мога да разбера от документацията.)


person JesperE    schedule 31.08.2009    source източник


Отговори (3)


Използвайте pathconvert, като това:

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

Внедрявайки целта, която предоставихте, промених препратката от <arg pathref="/bgfindbugs.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="/bgfindbugs.auxinput"/>
        <arg value="${findbugs.input.csv}" />
    </java>
</target>
person Mads Hansen    schedule 31.08.2009
comment
работи за мен с <pathconvert pathsep=" " ...> и <arg line="...> - person Bernhard Döbler; 29.05.2015

Използвайте ‹pathconvert›, за да конвертирате пътя в правилния формат, като го съхраните в свойство, след което използвайте ‹arg value...› вместо ‹arg pathref...›

person Community    schedule 31.08.2009

Можете да контролирате паметта от задачата за мравка:

    <findbugs   jvmargs="-Xms512m -Xmx512m" ...>
      ...
   </findbugs>
person rodrigoap    schedule 31.08.2009