我有以下代码:
<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
放在jar中时应该是persistence.xml
。
我知道我可以创建一个工作目录并在那里布置我的整个jar,然后将其打包。我知道我可以将其中一个文件复制到其他地方并在复制时重命名。如果我要将一大堆名为*-prod.xml
的文件重命名为*.xml
,我可以在复制任务中使用file mapper。但是,我希望能够在<jar>
任务中重命名该文件。我尝试将<globmapper>
添加到jar任务中,但收到了错误消息:jar doesn't support the nested "globmapper" element.
知道如何在对文件进行评级时进行重命名吗?
答案 0 :(得分:6)
当然,在我问这个问题的那一刻,我找到了答案:
我无法将<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>
任务的所有{{1}}。