0

我是 ANT 的新手。

我有一个非常具体的场景要处理:

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

要处理的情况是“如何识别文件是否从特定存档中复制”,如果找到则继续执行步骤 2,否则转到下一个存档。

我已经达到第 1 步,但不知道如何达到第 2 步。

第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步:

???

在这方面需要帮助。

谢谢。

4

1 回答 1

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 以搜索模式。

于 2013-03-01T08:10:15.263 回答