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

从命令行运行时,我想根据需求来调用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>

最佳答案

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

<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>

关于java - 如何在build.xml中定义的taskdef操作列表中根据要求执行taskdef操作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42436020/

10-10 09:58