Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ant重新组织jar中的文件_Ant_Jar_Oracle Adf - Fatal编程技术网

使用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>