使用ant重新组织jar中的文件

时间:2013-04-10 11:59:50

标签: 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

有没有办法用蚂蚁做到这一点?

修改

我读到Top 15 Ant Best Practices第13点,他们说,我应该使用zipfileset。但我无法这样做,因为我的必需文件已经在jar中了。最初的jar创建是通过ojdeploy完成的,因为我对jar的初始结构没有影响。

1 个答案:

答案 0 :(得分:0)

我试图了解问题所在:

  • 你创造了这个罐子吗?
  • 您是合并新数据还是移动它?

正如其他人所说的那样,你需要解开,挖掘结果,然后将其重新装上。没什么大不了的:

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

不完全确定你想要的是什么,你必须填写<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>

我没有测试过上述内容,但它会给你一个想法。