Zip-файл не может содержать себя - ошибка сборки Ant - PullRequest
2 голосов
/ 04 августа 2010

У меня ошибка в первой строке следующего кода при сборке с помощью Ant Builder,

<war warfile="${wartemp.dir}/${name}.war" basedir="${wartemp.dir}" webxml="${wartemp.dir}/WEB-INF/web.xml">
            <include name="*"/>
            <include name="scripts/**"/>
            <include name="styles/**"/>
            <include name="images/**"/>
            <include name="WEB-INF/*.*"/>
            <include name="WEB-INF/lib/**"/>
            <include name="WEB-INF/views/**"/>
            <include name="WEB-INF/classes/**"/>
            <include name="WEB-INF/jsp/**"/>
            <include name="WEB-INF/resources/**"/>
            <include name="WEB-INF/spring/**"/>
            <include name="WEB-INF/messages/**"/>
            <include name="WEB-INF/layouts/**"/>
            <exclude name="WEB-INF/web.xml"/>           
            <exclude name="**/.*"/>
        </war>

Сообщение об ошибке:

"... /WEB-INF/build.xml:67: ZIP-файл не может включать сам себя" строка 67 - первая строка фрагмента, размещенного выше.

Я новичок в Spring Framework. Я использую Spring версии 3 с springsource toolsuite. Как это исправить? спасибо.

Ответы [ 2 ]

5 голосов
/ 04 августа 2010

Ваш basedir - это тот же каталог, в который вы отправляете полученный военный файл. Само по себе это не проблема, проблема в том, что вы включаете * в качестве входных данных, которые будут включать выходной файл.

Чтобы это исправить, вы можете либо исключить выходной файл из включенных файлов, например ::10000

<exclude name="${name}.war"/>

или вы можете записать файл war в другую структуру каталогов, из которой вы читаете, например ::

<mkdir dir="${war.output.dir}" />
<war warfile="${war.output.dir}/${name}.war" ...>
0 голосов
/ 16 июля 2013

Полагаю, я обнаружил еще одну причину проблемы "zip-файл не может включать себя" в любые "zip-подобные" задачи Ant (zip, jar ...):

Помните, установка "basedir"атрибут - это уже первый набор файлов для включения!Вам необходимо явно исключить zip-файл, создаваемый на этом уровне (с атрибутом «exclude». Или, начиная с Ant 1.7, с вложенным элементом «exclude»).

Набор файлов"вложенный элемент - это еще один" набор "для задачи zip.Вы должны убедиться, что zip «сам» будет исключен из набора также с другим явным исключением.И так далее ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...