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

Java Ant作为项目中的依赖项,也使用Ant进行构建/测试,java,testing,ant,build,classpath,Java,Testing,Ant,Build,Classpath,在我们的Java项目中,我们希望使用第三方jar,该jar碰巧将ApacheAnt作为其依赖项之一。然而,我们也使用ant来构建项目和运行测试套件,我担心不同版本的ant类在运行时,特别是在测试期间,被包含在类路径中的可能性 例如:假设ant 1.8.4 jar作为我们项目的依赖项被引入,并且它的一些或所有类与我们的类一起打包到一个主jar文件中,用于测试和最终分发。现在假设有人使用ant 1.7使用我们的build.xml构建这个主jar文件,并启动在其上运行的测试套件——这会导致问题吗?只要

在我们的Java项目中,我们希望使用第三方jar,该jar碰巧将ApacheAnt作为其依赖项之一。然而,我们也使用ant来构建项目和运行测试套件,我担心不同版本的ant类在运行时,特别是在测试期间,被包含在类路径中的可能性


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

只要遵守一些规则就可以了

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

  • includeAntRuntime:将此设置为false以从building ANT版本中排除JAR
  • includeJavaRuntime:设置为false以从JVM执行ANT中排除JAR
  • fork:设置为true可在生成的VM上运行任务
其他任务(如fork)具有类似的选项,这些选项应该隔离它们的操作,并将它们限制在您在其类路径上定义的jar中