Grokbase Groups Ant user October 2009
FAQ
Hi Guys,

I'm invoking ANT programmatically in Java, and I'm having a hard time with
running some targets. The code is that classical one:

p.fireBuildStarted();
p.init();
ProjectHelper helper = ProjectHelper.getProjectHelper();
ProjectHelper.configureProject( p, buildFile);
p.addReference("ant.projectHelper", helper);
helper.parse(p, buildFile);
p.executeTarget("_scanProject");
p.fireBuildFinished(null);

so my build file is not a build.xml it is called javalanche.xml : File
buildFile = new File(javalancheDestination,"javalanche.xml");

The code is working fine, but the problem is that I'm not sure if I'm
calling the targets right.

So my build file (javalanche.xml) imports another XML file
(mutation-include.xml).

so the target I'm calling (_scanProject) is in mutation-include.xml:

<target name="_scanProject">
<property name="scan.project.mutation.javaagent"
value="-javaagent:${javalanche.mutation.javaagent}"/>
<property name="scan.project.memory"
value="-Xmx${javalanche.maxmemory}"/>
<property name="scan.project.mutation.run.mode"
value="-Dmutation.run.mode=scan-project"/>
<property name="scan.project.javalanche.package.prefix"
value="-Dmutation.package.prefix=${project.prefix}"/>
<property name="scan.project.javalanche.project.test.suite"
value="-Dmutation.test.suite=${project.test.suite}"/>
<property name="scan.project.verbose" value="-verbose"/>

<path id="scan.project.classpath.add">
<path refid="mutation.classpath"/>
</path>

<antcall target="test-javalanche">
<!--${scan.project.verbose}-->
<param name="javalanche.arg.line" value="
${scan.project.mutation.javaagent} ${scan.project.memory}
${scan.project.mutation.run.mode} ${scan.project.javalanche.package.prefix}
${scan.project.javalanche.project.test.suite} " />
<reference refid="scan.project.classpath.add"
torefid="javalanche.classpath.add"/>
</antcall>
</target>

The "test-javalanche" target is in the javalanche.xml file:

<target name="test-javalanche">
<mkdir dir="mutation-files/junit-reports"></mkdir>
<junit dir="." printSummary="yes" fork="true" forkmode="once"
showoutput="true">
<classpath>
<path refid="javalanche.classpath.add" />
<pathelement path="${cp}"></pathelement>
</classpath>

<jvmarg line="${javalanche.arg.line}" />

<formatter type="xml"/>
<formatter usefile="true" type="plain"/>
<test todir="mutation-files/junit-reports" name="${testsuite}"
/>
</junit>
</target>

So when I call p.executeTarget("_scanProject"); it doesn't run right because
it doensn't run the target test-javalanche properly. It just creates the
directory.
The XML files are all fine. Because when I run it in the command line: "ant
-f javalanche.xml _scanProject" it runs perfectly. I'm not sure if
javalanche.arg.line is passed to test-javalanche.

Any thoughts on how to call the target right??

Cheers,
--
David Nemer
Sent from Frankfurt Am Main, HE, Germany

Search Discussions

  • David Nemer at Oct 8, 2009 at 9:19 am
    I just tested it again, and the arguments to ${javalanche.arg.line} is
    passed all right, so I don't know why it wont run the test-javalanche
    properly.
    --
    David Nemer
    Sent from Frankfurt Am Main, HE, Germany
    On Thu, Oct 8, 2009 at 11:13 AM, David Nemer wrote:

    Hi Guys,

    I'm invoking ANT programmatically in Java, and I'm having a hard time with
    running some targets. The code is that classical one:

    p.fireBuildStarted();
    p.init();
    ProjectHelper helper = ProjectHelper.getProjectHelper();
    ProjectHelper.configureProject( p, buildFile);
    p.addReference("ant.projectHelper", helper);
    helper.parse(p, buildFile);
    p.executeTarget("_scanProject");
    p.fireBuildFinished(null);

    so my build file is not a build.xml it is called javalanche.xml : File
    buildFile = new File(javalancheDestination,"javalanche.xml");

    The code is working fine, but the problem is that I'm not sure if I'm
    calling the targets right.

    So my build file (javalanche.xml) imports another XML file
    (mutation-include.xml).

    so the target I'm calling (_scanProject) is in mutation-include.xml:

    <target name="_scanProject">
    <property name="scan.project.mutation.javaagent"
    value="-javaagent:${javalanche.mutation.javaagent}"/>
    <property name="scan.project.memory"
    value="-Xmx${javalanche.maxmemory}"/>
    <property name="scan.project.mutation.run.mode"
    value="-Dmutation.run.mode=scan-project"/>
    <property name="scan.project.javalanche.package.prefix"
    value="-Dmutation.package.prefix=${project.prefix}"/>
    <property name="scan.project.javalanche.project.test.suite"
    value="-Dmutation.test.suite=${project.test.suite}"/>
    <property name="scan.project.verbose" value="-verbose"/>

    <path id="scan.project.classpath.add">
    <path refid="mutation.classpath"/>
    </path>

    <antcall target="test-javalanche">
    <!--${scan.project.verbose}-->
    <param name="javalanche.arg.line" value="
    ${scan.project.mutation.javaagent} ${scan.project.memory}
    ${scan.project.mutation.run.mode} ${scan.project.javalanche.package.prefix}
    ${scan.project.javalanche.project.test.suite} " />
    <reference refid="scan.project.classpath.add"
    torefid="javalanche.classpath.add"/>
    </antcall>
    </target>

    The "test-javalanche" target is in the javalanche.xml file:

    <target name="test-javalanche">
    <mkdir dir="mutation-files/junit-reports"></mkdir>
    <junit dir="." printSummary="yes" fork="true" forkmode="once"
    showoutput="true">
    <classpath>
    <path refid="javalanche.classpath.add" />
    <pathelement path="${cp}"></pathelement>
    </classpath>

    <jvmarg line="${javalanche.arg.line}" />

    <formatter type="xml"/>
    <formatter usefile="true" type="plain"/>
    <test todir="mutation-files/junit-reports" name="${testsuite}"
    />
    </junit>
    </target>

    So when I call p.executeTarget("_scanProject"); it doesn't run right
    because it doensn't run the target test-javalanche properly. It just creates
    the directory.
    The XML files are all fine. Because when I run it in the command line: "ant
    -f javalanche.xml _scanProject" it runs perfectly. I'm not sure if
    javalanche.arg.line is passed to test-javalanche.

    Any thoughts on how to call the target right??

    Cheers,
    --
    David Nemer
    Sent from Frankfurt Am Main, HE, Germany

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupuser @
categoriesant
postedOct 8, '09 at 9:13a
activeOct 8, '09 at 9:19a
posts2
users1
websiteant.apache.org

1 user in discussion

David Nemer: 2 posts

People

Translate

site design / logo © 2017 Grokbase