我的一个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;的systenId: 文件:/home/craig/source_code/java/Test_JsonFactory/build.xml; lineNumber:78; columnNumber:11;元素类型&#34;属性&#34;一定是 其次是属性规范,&#34;&gt;&#34;或&#34; /&gt;&#34;。
有人知道是否有办法完成我想要做的事情,即将字符串分成多行?我厌恶在我的build.xml文件中有这样的长行,并且当它垂直定向并分割成多行时,发现分析代码要容易得多。
答案 0 :(得分:2)
您拥有的不是格式良好的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与下面的XML相同,并且@value
内没有换行符,将取决于应用程序:
<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>