【问题标题】:Exclude jars from existing ear using ant task使用蚂蚁任务从现有耳朵中排除罐子
【发布时间】:2013-07-07 13:02:02
【问题描述】:

我需要使用 ant 任务更新现有的 ear 文件,不包括一些 jar 文件,这些文件将在 WAS 共享库上可用。我不想再次创建耳朵,只需要更新已经构建的耳朵,因为我已经看到更新耳朵的帖子,但那些正在创建一个新耳朵。我的问题是,我不想重新创建耳朵。

This是通过maven做的一种方式,但是我想通过ear task ant来做。

谢谢。

【问题讨论】:

  • 重新创建ear文件有什么问题?您是否认为可以在不重写文件的情况下删除文件的某些部分?
  • ear文件是自动生成的,所以我不想改变它的格式。我只是想更新耳朵的内容,比如this但是通过ant脚本。
  • 7zip 让您认为它直接在存档中更新文件,但实际上并非如此。它重新创建了整个档案。只需创建一个 ant 任务,将 EAR 中的所有内容提取到一个空的临时文件夹中,然后更新或删除您要更新/删除的文件,然后从临时目录内容。
  • 谢谢@JBNizet,我同意你的观点。

标签: ant ear


【解决方案1】:

Ant ear、war 和 jar 任务可能能够更新 ear、wars 和 jars,但我不会依赖它。创建耳朵是一项非常快速的任务——短短几秒钟,所以这不是我探索的问题。

如果由于需要的文件不再可用而无法重新创建 ear,可以尝试解压缩 ear,设置所需内容,然后从头开始重建。

<unzip src="${ear.file}"
    destdir="${temp.location}"/>
<delete file="${ear.file}"/>

<here be dragons.../>

<zip destfile="${ear.file}"
    basedir="${temp.location}"/>

您可以使用&lt;patternset/&gt;s 或&lt;zipfileset/&gt;s 来控制压缩和解压缩的内容,但解压缩和重建可能更容易。

如果让您感觉更好,您可以使用&lt;ear/&gt; 代替&lt;zip&gt;,但您必须指定appxml 参数。使用&lt;zip/&gt; 更容易。

【讨论】:

    猜你喜欢
    • 2012-03-19
    • 1970-01-01
    • 2020-06-07
    • 2014-01-06
    • 1970-01-01
    • 2015-12-04
    • 1970-01-01
    • 1970-01-01
    • 2011-04-17
    相关资源
    最近更新 更多