0

我目前正在使用ojdeploy. 不幸的是,罐子的包装不像它应该的那样。

所以我在路径中有图像

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

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

编辑

我阅读了15 大 Ant 最佳实践第 13 点,他们指出,我应该使用zipfileset. 但我无法这样做,因为我需要的文件已经在 jar 中。最初的 jar 创建是通过它完成的,ojdeploy因此我对 jar 的初始结构没有影响。

4

1 回答 1

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>

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

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

于 2013-04-10T14:41:09.457 回答