0

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

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

4

1 回答 1

1

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

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

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

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

于 2013-04-30T23:15:35.777 回答