如何识别是否从特定存档复制文件?

时间:2013-02-20 09:52:17

标签: ant

我是ANT的新手。

我有一个非常具体的方案来处理:

STEP-1:我需要在某些ear文件中查找文件名的模式。如果模式匹配,那么我需要提取这些文件。 第2步:如果从某个耳朵(类似于zip文件)文件中提取任何文件,那么我需要搜索另一组文件,并复制这些文件集。

要处理的案例是“如果找到文件是否从特定档案中复制”,如果找到则继续执行步骤2,否则转到下一档案。<​​/ p>

我已经实现了STEP-1,但不知道如何实现第2步。

STEP-1

<!-- Set via arguments passed -->
<patternset id="pattern.needtocopy" includes="${needtocopyfile.pattern}" excludes="${ignore.pattern}"> 
 </patternset>

<target name="get-binaries-from-baseline">
<for param="binary">
    <path>
        <fileset dir="${baseline.dir}/target/aaa/bbb/ccc" includes="*.ear" />
    </path>
    <sequential>
        <basename file="@{binary}" property="@{binary}.basename" />

        <unzip src="@{binary}" dest="${baseline.dir}">
            <patternset refid="pattern.needtocopy" />
            <mapper type="flatten" />
        </unzip>
    </sequential>
</for>
</target>

步骤2:

????

需要帮助。

感谢。

1 个答案:

答案 0 :(得分:0)

我使用基于我能找到的资源的groovy脚本解决了同样的问题。

<target name="findJars">
    <zipfileset id="found" src="${ear-name}">
        <patternset refid="${patternsetref}" />
    </zipfileset>
    <groovy>
        project.references.found.each {
            println it.name
            println project.properties.'ear-name'
            println project.properties.'dest.dir'
        }
    </groovy>
</target>

然后我添加了另一个任务,它将此文件名和ear-file-name作为输入,并根据文件提取相关的jar到搜索模式。