Обновление файлов в WAR / JAR независимо от их даты - PullRequest
3 голосов
/ 10 августа 2011

У меня есть задача ANT, которая использует задачу jar для обновления нескольких файлов внутри ранее построенной войны. [Файлы обрабатываются между компиляцией WAR и доставкой.] Как я могу получить ANT для обновления всех файлов, которые я указал для обновления? Существует атрибут для jar update = "[...]", который позволит вам либо принудительно создать новое создание файла Jar, либо (добавить новые файлы / "обновить существующие, если это будет сочтено необходимым").

Пример:

  1. Классы Java скомпилированы
  2. Баночки созданы
  3. .war создан
  4. Сценарий запускается для изменения банок
  5. .war необходимо обновить банки, которые были изменены [банки являются подмножеством всех файлов в войне]

Проблема, с которой я сталкиваюсь, заключается в том, что банки, которые инструктируются на обновление, не обновляются на последнем этапе. В журнале утверждается, что только что обработанные банки «устарели». Есть ли способ заставить обновление произойти? Если я переключу "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>

Точнее говоря, проблема, с которой я столкнулся, связана с поведением "update".

1 Ответ

1 голос
/ 11 августа 2011

Похоже, задача Jar верна.

Вы уверены, что обновляемые файлы имеют правильное время изменения даты - это то, что фактически сравнивается в параметре zipfileset / update?

Я видел эту проблему при подписании Jars [для параметра preservelastmodified установлено значение "true" (по умолчанию: false)].

Чтобы исправить это, вам нужно всего лишь изменить параметр подписи.

...