【问题标题】:Ant file set using path with spaces in it使用带有空格的路径设置 Ant 文件
【发布时间】:2012-05-22 20:02:15
【问题描述】:

我正在使用包含空格的源路径使其他人的 ant 构建工作。其中大部分是基本的 shell 脚本,在路径周围添加双引号,但这个让我很难过:

(来自 build.xml):

<path id="headers">
    <fileset dir="${source.main.dir}">
        <include name="**/*.h"/>
    </fileset>
</path>

source.main.dir 是包含空格的路径。它被添加到模式找到的每个包含文件名之前。如何在每个引号周围出现这种情况?

以防万一,我在 OS X Lion 10.7.4 上从命令行运行构建。

【问题讨论】:

  • 你对需要引用组件的路径做了什么?可能的答案可能是 pathconvert 任务:ant.apache.org/manual/Tasks/pathconvert.html
  • 完全限定路径名的整个列表作为参数传递给 appledoc。他们已经在使用 pathconvert 将它们连接在一起,用空格分隔;我会考虑我是否可以完成这项工作。我需要一些方法在第一个文件名的开头和最后一个文件名的末尾添加一个空格;剩下的可以用 pathep 来完成,我想。
  • 嗯...好吧,我尝试在 pathep 中添加额外的引号,并尝试从路径映射到带有引号的路径 - 两者都是语法错误。显然解析器无法处理额外的双引号,即使它们被转义。因此,除非有人知道解决方法,否则我认为这不会奏效。不过感谢您的建议!

标签: macos shell unix ant


【解决方案1】:

我想我明白了!我改变了:

    <pathconvert pathsep=" " property="doc.files.list" refid="headers" />

    <pathconvert pathsep=" " property="doc.files.list" refid="headers">
        <map from='${source.main.dir}' to='"${source.main.dir}"' />
    </pathconvert>

而且它现在似乎可以工作了。

【讨论】:

    猜你喜欢
    • 2014-09-07
    • 2010-12-23
    • 2018-07-10
    • 2012-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多