【问题标题】:Ant: Add files to zip only if path is definedAnt:仅在定义路径时将文件添加到 zip
【发布时间】:2013-04-02 13:14:25
【问题描述】:

我必须创建一个将组件 .jar 添加到 zip 的 ant 目标。问题是我没有始终定义组件的版本。例如:

    <zip destfile="${dist.dir}\result-${result-version}.zip">
       <fileset dir="${dist.dir}" includes="maincomponent-${maincomponenet-version}*.jar"/>
       <fileset dir="${second-componenet-folder}" includes="${second-component-version}.jar" />
   </zip>

如果未定义 second-component-version 属性,我如何添加一些条件来创建包含主要组件的 zip?

【问题讨论】:

    标签: ant


    【解决方案1】:

    使用Conditionisset (conditions):

    <target name="zip">
        <fileset id="main" dir="${dist.dir}" includes="maincomponent-${maincomponenet-version}.jar" />
        <fileset id="component" dir="${second-componenet-folder}" includes="${second-component-version}.jar" />
        <condition property="jar.file" value="component" else="main">
            <isset property="second-component-version"/>
        </condition>
        <zip destfile="${dist.dir}/result-${result-version}.zip">
            <fileset refid="${jar.file}" />
        </zip>
    </target>
    

    【讨论】:

    • 如果提供了第二个组件版本,这会添加两个文件吗?
    • 如果定义了第二个组件并且只包含未设置第二个变量的主要组件,是否可以轻松更改?我有很多组件要以这种方式添加
    • 您可以从父目录创建第三个组合 fileset 元素以包含这两个文件,或使用 union 组合两个原始 filesets
    猜你喜欢
    • 1970-01-01
    • 2018-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-08
    相关资源
    最近更新 更多