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属性文件_Ant - Fatal编程技术网

多个Ant属性文件

多个Ant属性文件,ant,Ant,Ant似乎忽略了我的一个属性文件 <property file="local.properties" /> <property file="build.properties" /> build.properties包含我的团队想要使用的典型属性。我正在介绍local.properties,它包含我特定工作站的覆盖。我们在这个项目中使用Eclipse(我使用的是开普勒),但是无论我是在Eclipse中构建还是通过命令行构建,构建都会失败,因为它在build.prope

Ant似乎忽略了我的一个属性文件

<property file="local.properties" />
<property file="build.properties" />

build.properties
包含我的团队想要使用的典型属性。我正在介绍
local.properties
,它包含我特定工作站的覆盖。我们在这个项目中使用Eclipse(我使用的是开普勒),但是无论我是在Eclipse中构建还是通过命令行构建,构建都会失败,因为它在
build.properties
中使用了一些值,即使
local.properties
包含覆盖

在我的特定情况下,我的Java版本比其他开发人员/环境更新。尽管在
local.properties
中指定了我拥有的版本,它仍然尝试在
build.properties
中使用该版本的编译器


我知道这些值很好,因为如果我将本地属性放在
build.properties
中,一切正常。

Eclipse不关心您的
build.xml
或您的属性文件。这只适用于蚂蚁

尝试使用
-d
标志运行ant,并捕获STDOUT和STDERR。这将显示是否正在读取
local.proe
,以及设置了哪些值。它将说明它是否正在尝试读取
local.properties
,是否找到
local.properties
,如果是,将设置哪些属性

还要记住,属性设置为先到先得。您没有说明您在
local.properties
中阅读的
build.xml
的位置。这可能是在目标中读取,而在目标之外设置其他属性。即使它们稍后出现在
build.xml
文件中,也会首先设置在任何目标之外设置的属性。如果设置了这些属性,并且读入了
local.properties
local.properties
不会超过它们。我提到这一点是因为我在这里遇到了一个问题。有人在其
build.xml
的末尾放置了一堆
任务,他们没有意识到这些任务将在运行任何目标之前设置

再次尝试以下操作:

Unix和Mac

$ ant -d 2>&1 | tee ant.out   # Allows you to see and capture the results
窗口

$ ant -d > ant.out 2>&1       # There's no "tee" command in Windows.

ant.out的输出将有数千行,但它将帮助您了解发生了什么。您发布的内容看起来正确。

您确定它正确解析了
local.properties
?尝试创建一个测试脚本,您只需在其中读取
local.properties
,然后查看它是否能够真正读取它。所使用的Java版本可能会受到外部因素的影响,例如您机器的环境变量。做一个简单的测试,在local.properties中添加“debug=local”,在build.properties中添加“debug=build”,然后在脚本中回显${debug}怎么样?它读取正确,但我发现了我缺少的东西。即使主
build.xml
包含
local.properties
,它也会在子目录中构建其他
build.xml
文件。我原以为main
build.xml
中的属性会保留下来,但我想情况并非如此。我是否需要将
local.properties
添加到所有后续的
build.xml
文件以实现我的目标,或者是否有其他选项?这取决于其他文件的使用方式。如果通过
任务使用
inheritAll=“false”
在目标中调用目标,则必须在每个目标中分别加载本地属性文件。如果其他
build.xml
正在导入到主
build.xml
中,那么您只需在加载该属性文件后导入它们即可。