如何根据build.xml中定义的taskdef操作列表中的需求执行taskdef操作?

时间:2017-02-24 10:15:46

标签: java ant taskdef

我有一个build.xml,它有不同的taskdef操作。

从命令行运行时我想根据需求调用taskdef动作,就像我们可以为ant目标做的那样。

我的问题是如何从命令行运行taskdef操作。在这里附加示例代码我想只从命令行运行第一个taskdef helloworld。

<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="MyTask" basedir="." default="use">
        <taskdef name="helloworld" classname="HelloWorld" classpath="${ant.project.name}.jar"/>
        <helloworld/>
<taskdef name="helloworld1" classname="HelloWorld1" classpath="${ant.project.name}.jar"/>
        <helloworld1/>
<taskdef name="helloworld2" classname="HelloWorld2" classpath="${ant.project.name}.jar"/>
        <helloworld2/>
</project>

1 个答案:

答案 0 :(得分:1)

为每项任务创建单独的目标,如下所示。请注意默认的“use”目标将如何运行所有三个任务:

<project name="MyTask" basedir="." default="use">

    <target name="use" depends="helloworld,helloworld1,helloworld2"/>

    <target name="helloworld">
        <taskdef name="helloworld" classname="HelloWorld" classpath="${ant.project.name}.jar"/>
        <helloworld/>
    </target>

    <target name="helloworld1">
        <taskdef name="helloworld1" classname="HelloWorld1" classpath="${ant.project.name}.jar"/>
        <helloworld1/>
    </target>

    <target name="helloworld2">
        <taskdef name="helloworld2" classname="HelloWorld2" classpath="${ant.project.name}.jar"/>
        <helloworld2/>
    </target>
</project>