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

原文 标签 java ant build

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

<!-- ... -->

这是明智的做法吗?还是有更好的?
对类路径refid(incompile.classpath)使用路径id(<javac>)可以吗?(它目前可以工作,但是refid确实要求元素是同一类型的。因为pathclasspath都是类似路径的结构,它们是同一类型的吗?)

最佳答案

我在以前的工作中成功地使用了这种方法,这是我保持一切正常的唯一方法。
最后,我进一步将所有第三方库定义放在一个单独的ext-libs.xml文件中,因为其中有几个是多jar库,确保我将所有定义都包含在我的最终war文件中将是一个巨大的麻烦。这样,在mainbuild.xml(和其他)中,我可以引用,比如说,lib.jaxb,而不必担心我已经更新了所有文件名中的版本号。
您已经找到了扩展编译类路径以生成测试类路径的诀窍,因此您走上了正确的轨道。
简而言之,请按。

相关文章:

java - 从CoreNLP Model jar文件而不是本地副本中加载特定的模型文件

java - Ant + javac + WebDriver:“无法找到符号:variable By”

如何使用msvc从Windows中的命令行生成dll

c++ - 使用Visual Studio构建GMP库?

java - toLowerCase(char)方法?

java - 如何计算经度和纬度坐标以创建围绕用户位置1英里半径?

java - SwingUtilities.invokeLater,SwingWorker和gif图标动画问题

ant - 本地存储库的好常春藤教程? [关闭]

iphone - 在Ant脚本中为xcodeuild添加构建设置

c# - 从代码启动Nant