在执行目标之前,排除fileset标记中的文件/目录

时间:2014-12-24 09:42:25

标签: java ant jar build

我正在为这样的项目编写一个Ant构建文件:

build.xml
    | child_build1.xml
    | child_build2.xml
        | calling generated jar file from child_build_1.xml

使用命令

调用Ant
ant -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,用于跳过清除目标中的错误。

0 个答案:

没有答案