Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在不同的jvm中运行ant任务_Ant_Jvm_Javac - Fatal编程技术网

在不同的jvm中运行ant任务

在不同的jvm中运行ant任务,ant,jvm,javac,Ant,Jvm,Javac,我们的ant构建是使用Java1.7.0 for Java_HOME运行的。这样,javac和所有其他依赖Java的目标在默认情况下使用正确的Java 但是来自外部供应商的1个ant目标不支持(或者说有bug)使用Java1.7.0。与javac或forked junit不同,这个目标不支持切换jvm的参数 是否可以在不同的jvm中运行特定的ant目标?您可以使用exec任务运行构建文件,并将该目标定义为作为参数运行。它可以在不同的JVM中运行,因为您可以将JVM传递给该exec调用 请注意,您

我们的ant构建是使用Java1.7.0 for Java_HOME运行的。这样,javac和所有其他依赖Java的目标在默认情况下使用正确的Java

但是来自外部供应商的1个ant目标不支持(或者说有bug)使用Java1.7.0。与javac或forked junit不同,这个目标不支持切换jvm的参数


是否可以在不同的jvm中运行特定的ant目标?

您可以使用exec任务运行构建文件,并将该目标定义为作为参数运行。它可以在不同的JVM中运行,因为您可以将JVM传递给该exec调用

请注意,您必须重构目标以依赖文件进行通信,而不是设置属性。由于它将位于不同的JVM中,因此显然不能依赖内存。

为了建议具体使用Ant任务,下面的示例将
exec
任务包装在宏中,以简化各种JVM的调用目标。请注意,JVM是使用Ant环境变量设置的

示例项目
您可以在不同的JVM中运行目标(我们一直都在这样做)。您只需要使用fork:

  <javac srcdir="${src}"
         destdir="${build}"
         fork="yes"
  />

但是我感觉到您已经意识到了这一点,那么,在JVM中运行外部ANT任务以及其他任务(假设您还有3个javac任务)怎么样。这可以通过设置属性文件来实现。看

可以使用不同的编译器。这可以通过设置global build.compiler属性来指定,该属性将影响整个生成过程中的所有任务


因此,此属性将影响您的3个任务,并在您指定的JVM(例如1.7)中运行它们,您可以将默认JAVA_HOME设置为外部库任务所需的任何值。

您可以提供一些代码片段吗?在Windows上(更改jdk路径后),执行上述ant可能会引发异常,执行失败:java.io.IOException:无法运行程序“ant”:CreateProcess error=2,系统找不到指定的文件。要解决此问题,请将行“”更改为。
test:
     [exec] Buildfile: /home/your/project/build.xml
     [exec] 
     [exec] echo-java-version:
     [exec]      [echo] Java version: 1.7.0
     [exec] 
     [exec] BUILD SUCCESSFUL
     [exec] Total time: 0 seconds
     [exec] Buildfile: /home/your/project/build.xml
     [exec] 
     [exec] echo-java-version:
     [exec]      [echo] Java version: 1.6.0
     [exec] 
     [exec] BUILD SUCCESSFUL
     [exec] Total time: 0 seconds

BUILD SUCCESSFUL
Total time: 2 seconds
  <javac srcdir="${src}"
         destdir="${build}"
         fork="yes"
  />