我目前正在使用ojdeploy
部署oracle adf项目。不幸的是,罐子的包装不像它应该的那样。
路径中有图像
lookAndFeel.jar/skins/lightsOff/images
lookAndFeel.jar/skins/lightsOn/images
需要和
合并lookAndFeel.jar/META-INF/adf/skins/lightsOff/images
lookAndFeel.jar/META-INF/adf/skins/lightsOn/images
有一种方法可以用蚂蚁做到这一点吗?
编辑
我读了Top 15 Ant最佳实践第13点,他们说我应该使用zipfileset
。但是我不能这样做,因为我需要的文件已经在jar中了。最初的jar创建是通过ojdeploy
完成的,因此我对jar的初始结构没有影响。
我想知道问题是什么:
- 您是否创建了这个jar?
- 你是在合并新数据还是移动它?
正如其他人所说,您需要解jar,修改结果,然后再将其备份。不要紧:
<property name="target.dir" value="${basedir}/target"/>
<property name="work.dir" value="${target.dir}/work"/>
<property name="munge.dir" value="${work.dir}/munge"/>
<target name="munge.jar">
<unjar src="${jar.file}"
dest="${munge.dir}"/>
<here be dragons.../>
<delete file="${jar.file}"/>
<jar destfile="${jar.file}
basedir="${munge.dir}"/>
</target>
不是100%确定你想要什么,你必须填写<here be dragons.../>
部分。您可以移动、重命名、随机化、删除和添加您的核心内容。
另一种可能性是使用<mapper/>
子实体来重新格式化你的jar。
<target name="munge.jar">
<unjar src="${jar.file}"
dest="${munge.dir}">
<mapper type="glob"
from="skins/**/*"
to="META-INF/adf/skins/**/*"/>
</unjar>
<delete file="${jar.file}"/>
<jar destfile="${jar.file}
basedir="${munge.dir}"/>
</target>
我还没有测试上面的,但它会给你一个想法。