由于我的ant文件非常复杂,我想模块化我的classpath-elements。
目前,我通过以下方式使用refid
:
<path id="compile.classpath">
<pathelement path="foo"/>
<!-- ... -->
</path>
<path id="test.classpath">
<path refid="compile.classpath"/>
<pathelement path="bar"/>
<!-- ... -->
</path>
<!-- ... -->
<javac>
<classpath refid="compile.classpath"/>
</javac>
<junit>
<!-- ... -->
<classpath>
<path refid="test.classpath"/>
<path path="bazz"/>
</classpath>
</junit>
<!-- ... -->
这是一种明智的做法吗?还是有一个更好的?
对classpath-refid(在compile.classpath
中)使用path-id(<javac>
)是否可以? (它目前有效,但refid
确实要求元素属于同一类型。由于path
和classpath
都是类似路径的结构,它们是否属于同一类型?)< / p>
答案 0 :(得分:5)
我在以前的工作中成功地使用了这种方法,这实际上是我能保持一切正常的唯一方法。
我最终更进一步将所有第三方库定义放在一个单独的ext-libs.xml
文件中,因为其中有几个是多jar库并且确保我在最后的战争中包含所有这些库文件变得非常麻烦。这样,在我的主build.xml
(和其他人)中,我可以参考,例如,lib.jaxb
,而不必担心我已经更新了文件名中的版本号。
您已经找到了扩展编译类路径以制作测试类路径的技巧,因此您处于正确的轨道上。
简而言之,按下。