如何使用通配符调用位于所有子目录中的所有build.xml中的特定目标(即不对子目录名称进行硬编码)?以下答案是硬编码的。有没有办法在没有硬编码的情况下做到这一点?
与此问题类似:Pass ant target to multiple build.xml files in subdirectories
答案 0 :(得分:6)
使用Ant subant
任务,如下所示:
<subant target="sometarget">
<fileset dir="." includes="*/build.xml" />
</subant>
如果您包含“inheritall”属性(与其使用方式相同但默认相反),您可以共享所有当前项目的属性和所有内容。如果需要,这也可以很容易地覆盖主build.xml文件中定义的任务。
详细了解here。
答案 1 :(得分:0)
我将在build.properties文件中设置不同的属性。我使用它们来动态构建目标中的路径。
定义build.properties文件的位置:
<!-- all properties are in build.properties -->
<property file="build.properties" />
在目标中使用这些属性:
构建属性中的属性与设置.ini文件类似:
project.rootdir=c:/Deploy
project.tempbuilddir = c:/Deploy/Temp/Inetpub
project.builddir=c:/Deploy/Inetpub
# Build prefix will be added to that tags urls (.../tags/${project.buildprefix}Build_${today.date})
project.buildprefix=ACA_
我猜你可以使用动态文件作为属性文件,只要你定义了文件的正确路径。您可以将其指向服务器端文件以动态编写属性文件(ColdFusion,PHP,JSP等)。
答案 2 :(得分:0)
我已经使用ant-contrib's foreach任务来做这样的事情。
答案 3 :(得分:0)
听起来像&lt; subant&gt;的完美候选人任务。