我认为这可能是一个常见的用例。我定义了一组路径:
<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>
现在,我想将id为all.classpath的路径中的所有文件复制到war的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
答案 0 :(得分:1)
不确定它是否可行,但请尝试此操作(您需要Ant 1.7或更高版本才能执行此操作):
<copy todir="${war-lib}" verbose="true">
<path><path refid="all.classpath" /></path>
</copy>