我正在尝试使用以下 Ant 脚本片段创建一个新的属性文件。
<propertyfile file="${path}/sample.properties">
<entry key="k1" value="v1"/>
</propertyfile>
它尝试创建属性文件,我收到以下错误
(系统找不到指定的路径(。此处的路径还包括文件名。我确认需要创建属性文件的父文件夹存在。
我用你的代码段创建了一个构建文件,但看不到问题。如果 path 属性指定的目录不存在,则会引发异常,但这似乎是正确的行为。
我建议您添加一些测试来确认 path 属性的实际值。 也许它没有您期望的值。
构建.xml
<project>
<property name="path" value="./test"/>
<propertyfile file="${path}/sample.properties">
<entry key="k1" value="v1"/>
</propertyfile>
</project>
测试用例 1 - "测试"目录不存在 - 预期结果失败
$ ls test
ls: cannot access test: No such file or directory
$ ant build.xml
Buildfile: /home/owen/stackoverflow/build.xml
[propertyfile] Creating new property file: /home/owen/stackoverflow/test/sample.properties
BUILD FAILED
/home/owen/stackoverflow/build.xml:3: java.io.FileNotFoundException: /home/owen/stackoverflow/test/sample.properties (No such file or directory)
Total time: 0 seconds
测试用例 2 - "测试"目录现已可用 - 预期结果成功
$ mkdir test
$ ant
Buildfile: /home/owen/stackoverflow/build.xml
[propertyfile] Creating new property file: /home/owen/stackoverflow/test/sample.properties
BUILD SUCCESSFUL
Total time: 0 seconds
编辑:抱歉没有阅读提到父文件夹存在的部分。对我来说,给定的片段有效(在 Eclipse 中(。您的path
变量包含什么以及您确切使用哪种环境?
在 Ant 创建属性文件之前,path
变量指定的所有文件夹都必须存在,甚至在执行任何目标之前也是如此。