【问题标题】:Is is possible to split a string across multiple lines in an Apache Ant build.xml file?是否可以在 Apache Ant build.xml 文件中将字符串拆分为多行?
【发布时间】:2015-02-10 02:01:55
【问题描述】:

我的一个 Apache Ant build.xml 文件中有以下代码段。

    <property
        name  = "classpath"
        value = "${dir_google_api_libs}/google-http-client-1.19.0.jar:"
                "${dir_google_api_libs}/google-http-client-jackson2-1.19.0.jar:"
                "${dir_google_api_libs}/jackson-core-2.1.3.jar"
    />

但是,如果我尝试在此 build.xml 文件上调用 Apache Ant,它 (Ant) 会有效地抱怨字符串被拆分为多行。它给我的确切信息是;

org.xml.sax.SAXParseException;系统标识: 文件:/home/craig/source_code/java/Test_JsonFactory/build.xml; 行号:78;列号:11;元素类型“属性”必须是 后跟属性规范“>”或“/>”。

有谁知道是否有办法完成我想要做的事情,即将字符串拆分为多行?我讨厌在我的 build.xml 文件中有这样长的行,并且发现当代码是垂直方向并分成多行时分析代码会容易得多。

【问题讨论】:

    标签: java xml ant


    【解决方案1】:

    您所拥有的不是格式良好的 XML,因此不适用于任何 XML 应用程序。

    以下 XML 格式正确,并显示了您可以如何打破长线:

    <property
        name  = "classpath"
        value = "${dir_google_api_libs}/google-http-client-1.19.0.jar:
                 ${dir_google_api_libs}/google-http-client-jackson2-1.19.0.jar:
                 ${dir_google_api_libs}/jackson-core-2.1.3.jar"
        />
    

    但是请注意,上面的@value 中带有换行符的 XML 是否与下面的@value 中没有换行符的 XML 相同,这取决于应用程序:

    <property
        name  = "classpath"
        value = "${dir_google_api_libs}/google-http-client-1.19.0.jar:${dir_google_api_libs}/google-http-client-jackson2-1.19.0.jar:${dir_google_api_libs}/jackson-core-2.1.3.jar"
        />
    

    对于 Apache Ant,我没有测试过上面的多行版本,但即使它确实有效,我也不推荐它。相反,我推荐path 元素:

    <path id="classpath">
      <pathelement path="${dir_google_api_libs}/google-http-client-1.19.0.jar"/>
      <pathelement path="${dir_google_api_libs}/google-http-client-jackson2-1.19.0.jar"/>
      <pathelement path="${dir_google_api_libs}/jackson-core-2.1.3.jar"/>
    </path>
    

    【讨论】:

      猜你喜欢
      • 2010-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-31
      相关资源
      最近更新 更多