Я думаю, что это, вероятно, общий случай использования. Я определяю набор путей:
<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