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。我知道我可以将那个文件复制到其他地方并在复制时重命名它。如果我有一大堆文件被命名*-prod.xml为被重命名,我可以在复制任务*.xml中使用文件映射器。但是,我希望能够在<jar>任务中重命名文件。我尝试添加<globmapper>到 jar 任务,但收到错误消息:jar doesn't support the nested "globmapper" element.

知道如何在 jaring 文件时进行此重命名吗?

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 回答