由于我的ant文件非常复杂,我想模块化我的类路径元素。
目前,我以以下方式使用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>
<!-- ... -->
这是明智的做法吗?或者有更好的吗?
将路径id(compile.classpath
)用于类路径refid(在<javac>
中)可以吗?(目前可以使用,但refid
确实要求元素的类型相同。由于path
和classpath
都是类路径结构,它们的类型相同吗?)
我在以前的工作中成功地使用了这种方法,这确实是我保持一切正常的唯一方法。
我最终更进一步,把我所有的第三方库定义都放在一个单独的ext-libs.xml
文件中,因为其中有几个是多jar库,确保我的最终战争文件中包含了所有这些库,这将是一个巨大的麻烦。这样,在我的主build.xml
(和其他)中,我可以引用lib.jaxb
,而不必担心我已经更新了各处文件名中的版本号。
您已经找到了扩展编译类路径以生成测试类路径的技巧,所以您走在了正确的轨道上。
简而言之,按下。