2

我使用此处的说明创建了自己的 ant 任务。在我的 ant 脚本中,我创建了<taskdef>这样的:

<!-- myUploader.xml -->
<taskdef name="fileUpload" classname="com.awt.client.UploaderTask" classpath="lib/fileUploader.jar" />

<target name="setup" description="some required setup before taskdef!">
    <!-- checking for required jars, etc... -->
</target>

然后我可以将调用它的脚本作为 ant 任务导入:

<!-- build.xml -->
<import file="myUploader.xml" />
<fileUpload server="${server}" username="${username}" password="${password}" appname="TestApp" appversion="13" />

这一切都很好。现在,我想在 taskdef 发生之前在 myUploader.xml 中进行一些设置。 <taskdef>不喜欢if,unlessdepends. 如何确保在<taskdef>完成之前调用我的设置任务?

4

1 回答 1

3

一种方法是移动目标taskdef内部setup

<target name="setup" description="some required setup before taskdef!">
    <!-- checking for required jars, etc... -->
    <taskdef name="fileUpload" classname="com.awt.client.UploaderTask" classpath="lib/fileUploader.jar" />
</target>

然后在主构建文件中,导入后myUploader.xml,调用setup现在负责定义自定义任务的目标。

或者您可以将setup目标的一部分移到外部(成为顶级部分):

<project>

     <!-- do required setup here -->
   <taskdef name="fileUpload" classname="com.awt.client.UploaderTask" classpath="lib/fileUploader.jar" />

...
于 2015-07-15T19:34:58.357 回答