我有一个ANT任务,它使用jar任务来更新之前构建的战争中的一些文件。 [文件在WAR和可交付成果的编译之间进行处理。]如何让ANT更新我指定要更新的所有文件? jar有一个名为update = "[...]"
的属性,它允许您强制创建Jar文件或(如果认为有必要,添加新文件/“更新现有文件”)。
一个例子:
我遇到的问题是指示要更新的Jars在最后一步没有得到更新。该日志声称刚加工过的罐子“已过时”。有没有办法可以强制更新发生?如果我将"jar [...] update"
切换回false(默认为默认值),则将正确的Jar文件放在那里,但战争中的其余文件不会。
注意我意识到可以在完成所有操作后将其移动以生成WAR。但这对我来说不是一个选择。
有问题的蚂蚁任务:
<target name="(the 'Rewaring task')" depends="step-3">
<echo>Adding modifed jars to war</echo>
<jar destfile="${output.war.dir}/existing.war" update="true">
<zipfileset dir="${output.jar.dir}/modded-jars" prefix="folder" />
</jar>
</target>
更具体地说,我遇到的问题是“更新”行为。
答案 0 :(得分:1)
看起来Jar任务是正确的。
您确定要更新的文件是否具有正确的日期修改时间 - 这是在zipfileset / update选项中实际比较的内容吗?
我在签署Jars时遇到过这个问题[并且将preservelastmodified选项设置为“true”(默认值:false)]。
要修复它,您只需要更改签名选项。