Ant作为项目中的依赖项,也使用ant进行构建/测试

时间:2013-04-30 20:11:44

标签: java testing ant build classpath

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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