在ant脚本中模块化类路径(例如通过refid)

Dav*_*Far 5 java ant build

由于我的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>

<!-- ... -->
Run Code Online (Sandbox Code Playgroud)

这是一种明智的做法吗?还是有更好的?

是否可以compile.classpath对classpath-refid(in <javac>)使用path-id()?(它目前有效,但refid确实要求元素属于同一类型.既然是pathclasspath类似路径的结构,它们是否属于同一类型?)

Arg*_*yle 5

我在之前的工作中成功地使用了这种方法,这实际上是我能保持一切正常的唯一方法.

我最终更进一步将所有第三方库定义放在一个单独的ext-libs.xml文件中,因为其中有几个是多jar库并且确保我将所有这些都包含在我的最终战争文件中变得非常麻烦.这样,在我的主要build.xml(和其他)中,我可以参考,比方说,lib.jaxb而不必担心我已经更新了文件名中的版本号.

您已经找到了扩展编译类路径以制作测试类路径的技巧,因此您处于正确的轨道上.

简而言之,按下.