我有一个项目,包含3个不同构建变体的目标,每个目标都有自己的属性文件,如下所示:
<target name="dev">
<property file="dev.properties" />
<antcall target="build" />
</target>
<target name="test">
<property file="test.properties" />
<antcall target="build" />
</target>
<target name="prod">
<property file="prod.properties" />
<antcall target="build" />
</target>
所有属性文件都定义相同的属性。现在我需要制作一个可以构建它们的目标,我尝试了类似的东西:
<target name="all">
<antcall target="dev" />
<antcall target="test" />
<antcall target="prod" />
</target>
但问题是ant属性是不可变的,我最终得到了dev.properties中所有构建的属性。如果我想用自己的属性构建所有三个目标,推荐的方法是什么?
答案 0 :(得分:1)
使用单个构建脚本,然后在运行时决定它的目的是不是更简单?
例如:
ant -propertyfile build-dev.properties
ant -propertyfile build-test.properties
ant -propertyfile build-prod.properties
..
使用Jenkins之类的东西自动化构建时,这种方法更灵活。它可以检测源代码更改并自动(并行)运行每种构建类型(如果这是期望的结果)。