【问题标题】:Ant as a dependency in a project that also uses ant for building/testingAnt 作为项目中的依赖项,该项目也使用 ant 进行构建/测试
【发布时间】:2013-04-30 20:11:43
【问题描述】:

在我们的 Java 项目中,我们希望使用一个第三方 jar,该 jar 恰好将 Apache Ant 作为其依赖项之一。但是,我们也使用 ant 来构建我们的项目并运行我们的测试套件,我担心不同版本的 ant 类在运行时被包含在类路径中的可能性,尤其是在测试期间。

例如:假设 ant 1.8.4 jar 作为我们项目的依赖项被引入,并且它的部分或全部类与我们的类一起打包到一个主 jar 文件中,用于测试和最终分发。现在假设有人使用 ant 1.7 使用我们的 build.xml 实际构建这个主 jar 文件并在其上启动一个测试套件运行——这会导致问题吗?

【问题讨论】:

    标签: java testing ant build classpath


    【解决方案1】:

    遵守一些规则应该没问题。

    例如,javac 任务有两个您需要设置的重要属性:

    • includeAntRuntime:将此设置为 false 以从构建 ANT 版本中排除 jars
    • includeJavaRuntime:设置为 false 以从执行 ANT 的 JVM 中排除 jars
    • fork:设置为 true 以在衍生的 VM 上运行任务

    junit 等其他任务有类似的选项(如 fork),它们应该隔离它们的操作并将它们限制在您在其类路径中定义的 jar 中。

    【讨论】:

      猜你喜欢
      • 2014-05-25
      • 1970-01-01
      • 1970-01-01
      • 2011-08-15
      • 2015-10-06
      • 1970-01-01
      • 2011-01-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多