Скопируйте Ant-путь в каталог lib WAR - PullRequest
2 голосов
/ 28 сентября 2011

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

<path id="log4j.classpath">
    <fileset dir="${log4j.home}">
        <include name="log4j-1.2.16.jar"/>
    </fileset>
</path>
<path id="junit.classpath">
    <fileset dir="${junit.home}">
        <include name="junit-4.8.2.jar"/>
    </fileset>
</path>
<path id="all.classpath">
    <path refid="log4j.classpath"/>
    <path refid="junit.classpath"/>
</path>

Когда я создаю свой веб-сервис, у меня есть:

<target name="compile">
    <javac srcdir="${basedir}/src" destdir="${build.classes.dir}" debug="true">
        <classpath>
            <path refid="all.classpath"/>
        </classpath>
    </javac>
</target>

Теперь я хочу скопировать все файлы по пути с идентификатором all.classpath в каталог lib моей войны. Каков наилучший способ сделать это?

В настоящее время у меня есть что-то вроде этого:

<copy todir="${war-lib}" verbose="true">
    <fileset dir="${log4j.home}">
        <include name="log4j-1.2.16.jar" />
    </fileset>
    <fileset dir="${junit.home}">
        <include name="junit-4.8.2.jar"/>
    </fileset>
<copy>

Но я не хочу переопределять наборы файлов. Это кажется ошибочным и плохим дизайном. Должен быть лучший способ. Пожалуйста, просветите меня.

РЕДАКТИРОВАТЬ: Чтобы было интересно, у меня есть только доступ к ANT 1.6

1 Ответ

1 голос
/ 28 сентября 2011

Не уверен, что это будет работать, но попробуйте это (вам понадобится Ant 1.7 или выше):

<copy todir="${war-lib}" verbose="true">
    <path><path refid="all.classpath" /></path>
</copy>
...