我正在为这样的项目编写一个Ant构建文件:
build.xml
| child_build1.xml
| child_build2.xml
| calling generated jar file from child_build_1.xml
使用命令
调用Antant -f build clean build-project
这里的clean和build-project是目标。 child_build2.xml生成一个jar文件,其中包含一些带有child_build1.jar文件的其他jar文件。
我正在使用临时文件夹来放置由build生成的jar文件并生成rpm。 要包含内部jar,我使用文件集来包含jar。
<path id="classpath.migrate">
<path refid="classpath"/>
<fileset dir="${parent}/test">
<include name="test1.jar"/>
</fileset>
<fileset dir="${parent}/bin">
<include name="xxx.jar"/>
<include name="yyyy.jar"/>
</fileset>
</path>
<target name="build-project">
<mkdir dir="${parent}/bin/" />
<mkdir dir="${parent}/lib/" />
...creating of parent directory and jar creation logic
</target>
<target name="clean">
...clearing all the file
</target>
我已在build.properties文件中声明了值,该文件已包含在属性标记中。
在触发“干净”目标时,Ant尝试解析,但无法找到$ {parent}文件夹。实际上,父文件夹$ {parent}将在“build”目标中生成。 我使用脚本中的rpmbuild命令生成rpm。脚本实习生用spec文件调用rpmbuild。 Ant脚本在spec文件中调用。
build.properties:
root.dir = rootdirectory
test.dir = ${root.dir}/test/
dist.dir = ${build.dir}/dist/
在规范中,使用父目录值调用Ant文件。所以没有硬编码值。
有没有办法排除检查机制并直接执行目标或跳过文件集中的错误?
文件集中有一个属性erroronmissingdir,用于跳过清除目标中的错误。