Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.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

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
为什么ANT不为构建使用Eclipse工作区默认JRE_Eclipse_Ant_Build_Java_Workspace - Fatal编程技术网

为什么ANT不为构建使用Eclipse工作区默认JRE

为什么ANT不为构建使用Eclipse工作区默认JRE,eclipse,ant,build,java,workspace,Eclipse,Ant,Build,Java,Workspace,我正在尝试用ANT构建脚本编译我的项目。 当我更改Eclipse工作区的默认JRE时,比如说JDK1.6.0_27 32位,ANT仍然使用JRE 1.7.0 64位(这是系统默认值) 通过设置“外部工具配置”,选择ANT build file并在“JRE”选项卡中选择相关java,可以将ANT build file设置为使用不同的java版本,但这很奇怪,因为在同一位置有一个选项可以使用“与工作区在同一个JRE中运行”,这对我来说不起作用(运行Eclipse Indigo 3.7) 当您有一个带

我正在尝试用ANT构建脚本编译我的项目。 当我更改Eclipse工作区的默认JRE时,比如说JDK1.6.0_27 32位,ANT仍然使用JRE 1.7.0 64位(这是系统默认值)

通过设置“外部工具配置”,选择ANT build file并在“JRE”选项卡中选择相关java,可以将ANT build file设置为使用不同的java版本,但这很奇怪,因为在同一位置有一个选项可以使用“与工作区在同一个JRE中运行”,这对我来说不起作用(运行Eclipse Indigo 3.7)


当您有一个带有一个ANT脚本的一个项目时,这可能不是问题,但我有一个带有7个构建文件的7个项目,我需要制作两个不同的版本:一个带有Java 1.6 32位,一个Java 1.7 64位。每次手动选择所需的设置(我几乎每天都在构建版本)都会成为真正的“麻烦”

好吧,我自己找到了解决办法。 我创建了一个新的ANT构建文件,并从中调用其他ANT文件,如下所示:

<project name="build-all" default="build.all">

<target name="proj1">
    <ant antfile="build-proj1.xml" target="build" inheritAll="false"/>
</target>

<target name="proj2">
    <ant antfile="build-proj2.xml" target="build" inheritAll="false"/>
</target>

<target name="proj3">
    <ant antfile="build-proj3.xml" target="build" inheritAll="false"/>
</target>

<target name="build.all" depends="proj1,proj2,proj3"/>


现在我可以转到Eclipse,将这个顶级ANT文件的目标更改为所需的JRE版本,所有子构建文件都使用父级设置执行。

ANT是一个独立的工具。它使用JAVA_HOME变量来确定在启动时使用哪个JDK。ANT是独立的,这没关系,但是,由于它集成到Eclipse中,并且Eclipse中有使用不同设置的选项,所以您的响应并不能真正帮助我解决问题。有什么解决办法吗?这是Eclipse/ANT未解决的BUG吗?好吧,我不清楚。我以为您希望ANT在从命令行或像Jenkins这样的CI服务器运行时使用Eclipse项目设置文件中定义的JDKD。