由于我的 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 库,并确保我拥有所有包含在我最后的 war 文件中的其中一些变得非常麻烦。这样,在我的主要 build.xml
(和其他)中,我可以引用 lib.jaxb
而不必担心我更新了版本号在文件名中无处不在。
您已经找到了扩展编译类路径以创建测试类路径的技巧,所以您走在了正确的轨道上。
简而言之,继续。
关于java - 在 ant 脚本中模块化类路径(例如通过 refid),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9100167/