Файлы внутри WAR отображаются дважды - PullRequest
2 голосов
/ 03 августа 2010

Я использую ANT для создания файла WAR для моего веб-приложения на Java.Однако, когда я заглядываю внутрь файла WAR, я вижу, что каждый файл появляется дважды (не папки, а только файлы).Когда я извлекаю файл WAR, ошибок нет, и структура файла выглядит корректной, двойных файлов нет.Если я затем соберу извлеченный файл обратно в ZIP-файл, то архив будет почти точно в два раза меньше размера в байтах исходного файла WAR, созданного ANT.

Я использую следующую задачу для создания моего файла WAR:

<target name="dist" depends="package">          
    <war destfile="${bin.dir}/webapp.war" basedir="${tmp.dir}">
        <fileset dir="${tmp.dir}" />
    </war>
</target>

Когда я проверяю файловую структуру в tmp.dir, файлы кажутся нормальными.Я запускаю ANT из Eclipse (Helios) в Ubuntu 9.10.

1 Ответ

2 голосов
/ 03 августа 2010

Я выяснил, что вызвало проблему. Тег <fileset> внутри задачи <war> как-то вызывает двойное добавление файлов в архив. Было бы хорошо, если бы ANT выдавал ошибку, но это не так. Поскольку я хочу добавить tmp.dir в свой архив, я должен был использовать следующее:

<target name="dist" depends="package">          
    <war destfile="${bin.dir}/webapp.war" basedir="${tmp.dir}">
        <!-- No extra <fileset> -->
    </war>
</target>

На случай, если кто-то еще столкнется с этой проблемой, я оставлю этот вопрос здесь, а не удаляю его.

...