我目前正在我的构建中运行exec任务,如下所示:
<target name="bar">
<exec executable="ant">
<arg value="-f"/>
<arg value="/path/to/my/build.xml"/>
<arg value="-lib"/>
<arg value="/path/to/my/libs"/>
</exec>
</target>
我不是很喜欢它,并希望用ant任务替换exec任务:
<target name="bar">
<ant antfile="/path/to/my/build.xml"/>
</target>
但是,在这种情况下,我不知道如何指定lib目录。这有可能吗?
答案 0 :(得分:1)
你想通过这种方式从ANT内部启动ANT来实现什么目标?
例如,如果您需要自定义ANT扩展,可以在运行时在代码中指定这些jar的路径,如下所示:
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
<classpath>
<pathelement location="${lib.dir}/ant-contrib-0.3.jar"/>
</classpath>
</taskdef>
再一次,您可以集成一个依赖管理系统,如Apache ivy来管理第三方jar依赖项。
答案 1 :(得分:0)
您可以在下面的ant脚本中调用ant脚本。 如果你使用属性inheritrefs =&#34; true&#34;在父构建脚本中设置的任何ID也将传递给子构建脚本。
例如:
<ant antfile="subbuild.xml" inheritrefs="true"/>