使用ant重新组织jar中的文件
我目前正在使用使用ant重新组织jar中的文件,ant,jar,oracle-adf,Ant,Jar,Oracle Adf,我目前正在使用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
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
有没有办法用ant做到这一点
编辑
我阅读了第13点,其中他们指出,我应该使用
zipfileset
。但是我不能这样做,因为我需要的文件已经在jar中了。最初的jar创建是通过ojdeploy
完成的,因此我对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>
我还没有测试过上面的内容,但它会给你一个想法。提取jar(使用unjar)、移动文件(使用move)、重新创建jar(使用jar)。不应该太难。@jbnize这不是会产生太多的开销吗?不过,我希望能举个例子,因为我是ant的新手。先尝试一些东西,如果你有问题就回来。Ant有一个优秀的文档。@JBNizet well根据您的建议提出了一个解决方案。但是我仍然认为必须有一个更干净的方法。。不过,谢谢你!更简洁的方法是从一开始就用正确的结构创建jar文件。但这不是你要求的,是吗?我读了第13点,他们说,我应该使用
zipfileset
。但是我不能这样做,因为我需要的文件已经在jar中了。最初的jar创建是通过ojdeploy
完成的,因此我对jar的初始结构没有影响。@Angelo.Hannes因此,您不需要构建所需的jar。我关于如何使用
的回复有帮助吗?基本上,您必须解压缩并重建jar。
可能会使这更容易。您的第一个解决方案与我在JB Nizet的帮助下创建的解决方案类似。所以我想我会接受你的回答。
<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>