我怎样才能 运行 一个 ant 任务作为 <taskdef> 的先决条件?
How can I run an ant task as a prerequisite to <taskdef>?
我使用指令 here 创建了自己的 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
、unless
或 depends
。如何确保在 <taskdef>
完成之前调用我的设置任务?
一种方法是将 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" />
...
我使用指令 here 创建了自己的 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
、unless
或 depends
。如何确保在 <taskdef>
完成之前调用我的设置任务?
一种方法是将 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" />
...