10

次のコードがあります。

<jar destfile="${jar.file}">
     <fileset dir="${basedir}/resources"/>
        <include name="META-INF/ejb-jar.xml"/>
        <include name="META-INF/persistence-prod.xml"/>
     </fileset>
     [...]
</jar>

問題は、瓶に入れられたときにあるpersistence-prod.xm1はずです。persistence.xml

作業ディレクトリを作成し、そこに jar 全体をレイアウトしてから、それを jar にできることを知っています。その 1 つのファイルを別の場所にコピーして、コピー中に名前を変更できることはわかっています。rename という名前のファイルがたくさんある場合は、コピー タスク内でファイル マッパー*-prod.xml*.xml使用できます。ただし、タスク内でファイルの名前を変更できるようにしたいと考えています。jar タスクに追加しようとしましたが、エラー メッセージが表示されました。<jar><globmapper>jar doesn't support the nested "globmapper" element.

ファイルをjarしているときに、この名前変更がどのように行われるか考えていますか?

4

1 に答える 1

9

もちろん、私が質問をした瞬間、私は答えを見つけました:

タスクに<globmapper>直接入れることはできませんが、タスクに含めて、そこに配置することはできます。<jar><mappedresources><jar><globmapper>

違う:

<jar destfile="${jar.file}">
     <fileset dir="${basedir}/resources"/>
          <include name="META-INF/ejb-jar.xml"/>
          <include name="META-INF/persistence-prod.xml"/>
     </fileset>
     <globmapper from="*-prod.xml" to="*.xml"/>
     [...]
</jar>

右:

<jar destfile="${jar.file}">
    <fileset dir="${basedir}/resources"/>
         <include name="META-INF/ejb-jar.xml"/>
    </fileset>
    <mappedresources>
        <fileset dir="${basedir}/resources">
            <include name="META-INF/persistence-prod.xml"/>
        </fileset>
        <globmapper from="*-prod.xml" to="*.xml"/>
    </mappedresources>
    [...]
</jar>

<mappedresources>これは、ファイル マッピングをすべて<fileset>のタスクではなく特定のタスクのみに制限するため、理にかなっていると思い<jar>ます。

于 2013-06-24T15:01:46.450 に答える