Jar был скопирован дважды при создании файла войны из ANT - PullRequest
0 голосов
/ 25 мая 2011

Я новичок в ANT и пробую простой скрипт ANT для создания .war файла моего проекта.
Вот мой скрипт
Когда я запускаю этот скрипт, все работает нормально, но файл .jar присутствует в WebContent/WEB-INF/lib копируются дважды в файл .war.

<?xml version="1.0" ?>
<project name="AutoComplete">
     <path id="compile.classpath">
        <fileset dir="WebContent/WEB-INF/lib">
            <include name="*.jar"/>
        </fileset>
    </path>

    <target name="init">
        <mkdir dir="build/classes"/>
    </target>

    <target name="compile" depends="init" >
        <javac includeantruntime="false" destdir="build/classes" debug="true" srcdir="src" >
            <classpath refid="compile.classpath"/>
        </javac>
    </target>

    <target name="build.war" depends="compile">
        <war destfile="AutoComplete.war" webxml="WebContent/WEB-INF/web.xml">
            <fileset dir="WebContent"/>
            <lib dir="WebContent/WEB-INF/lib"/>
            <classes dir="build/classes"/>
        </war>
    </target>

    <target name="clean">
        <delete dir="build" />
    </target>

</project>

Пожалуйста, дайте мне знать, если я совершаю какую-либо ошибку.

Спасибо.

1 Ответ

9 голосов
/ 25 мая 2011

Ваша задача build.war выглядит виновной:

    <war destfile="AutoComplete.war" webxml="WebContent/WEB-INF/web.xml">
        <fileset dir="WebContent"/>
        <lib dir="WebContent/WEB-INF/lib"/>
        <classes dir="build/classes"/>
    </war>

Первый вложенный <fileset> извлекает все файлы из WebContent в корень WAR.Затем вторая строка явно говорит, что все в WebContent/WEB-INF/lib следует рассматривать как библиотеку (и, следовательно, копировать в WEB-INF/lib внутри WAR).

Удаление одной из этих строк должно означать, что библиотеки будут скопированы один разесли вы хотите, чтобы все содержимое WebContent копировалось как есть в WAR, вы можете просто удалить строку <lib>.

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