0

私はANTを初めて使用します。

これで処理する非常に具体的なシナリオがあります。

STEP-1: 特定の ear ファイルでファイル名のパターンを探す必要があります。パターンが一致する場合は、それらのファイルを抽出する必要があります。STEP-2: 特定の ear (zip ファイルに似た) ファイルからファイルが抽出された場合は、別のファイル セットを検索し、それらのファイル セットもコピーする必要があります。

処理するケースは、「ファイルが特定のアーカイブからコピーされたかどうかを識別する方法」です。見つかった場合は手順 2 に進み、そうでない場合は次のアーカイブに移動します。

STEP-1 は達成しましたが、STEP-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

見つけたリソースに基づいたグルーヴィーなスクリプトを使用して、同じことを解決しました。

<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 に答える