我正在使用Windows而我正试图让ANT工作。
当我从命令行执行ant构建时,我得到:
C:\dev\Projects\springapp\${%ANT_HOME%}\lib not found.
我查看了build.xml
文件,发现:
appserver.home=${user.home}/apache-tomcat-6.0.14
(我刚从教程中直接复制和粘贴)
我把它改为:
appserver.home="C:\Program Files\Apache Software Foundation\Tomcat 6.0"
但现在我明白了:
C:\dev\Projects\springapp\"C:Program FilesApache Software FoundationTomcat 6.0"\lib not found.
似乎Program Files和Tomcat 6.0中的空白区域导致构建失败。如何在没有使用没有空格的路径重新创建目录的情况下处理xml文件中的这些文件?
答案 0 :(得分:13)
将其更改为
appserver.home="C:\\Program Files\\Apache Software Foundation\\Tomcat 6.0"
答案 1 :(得分:6)
Variant with“/”而不是“\”在我的系统上运行。只需要删除“路径结构前后的符号。
答案 2 :(得分:2)
看起来您的属性设置不正确。
我猜你的basedir属性指向C:\ dev \ Projects \ springapp,你的属性使用的值如下:
<property name="property.1" value="directory" />
而不是
<property name="property.1" location="directory" />
如果位置是相对路径,则使用location属性将链接解析为相对于basedir的链接,如果输入其中一个,则解析为绝对路径。如果您可以发布Ant文件的部分内容,具体说明如何定义appserver.home以及如何在抛出错误的任务中使用它,我可能会更具体。
答案 3 :(得分:2)
使用dir /x
查找这些目录的Windows短名称,并在设置path
值时使用它们。
在How does Windows determine/handle the DOS short name of any given file?
进行更多讨论答案 4 :(得分:1)
除了转义windows目录分隔符之外,还要确保您键入的所有路径都应该具有正确的大小写,Windows不区分大小写但是大小写正确,而Ant区分大小写。
答案 5 :(得分:1)
在build.xml的顶部,尝试添加
<property environment="env"/>
然后使用${env.USER_HOME}
(或您环境中的任何内容)。这对我来说($ {env.JAVA_HOME}而不是${java.home}
)。