我想模板各種XML文件。我想要做的是能夠通過包含幾個Child XML文件來構建一個Parent XML。在Gradle的展開/複製過程中,我可以將輔助文件包含到文件中嗎?
搖籃:
processResources {
exclude '**/somedir/*'
propList.DESCRIPTION = 'a description goes here'
expand(propList)
}
Parent.XML:
<xml>
<line1>something</line1>
<%include file="Child.XML" %>
</xml>
文檔使用SimpleTemplateEngine
作爲一個例子>拷貝() - 這應該展開()過程中發生指出SimpleTemplateEngine使用JSP <%語法和<%=表達式,但不一定提供支持函數的列表。
包含失敗,它不是一個有效的方法在生成SimpleTemplateScript,也許我的意思是eval?
我來得到的東西的工作最接近的是:
<xml>
<line1>something</line1>
<% evaluate(new File("Child.xml")) %>
</xml>
這導致Child.xml的404,因爲它是在看的過程中工作目錄,而不是父文件。如果我將它引用爲「build/resources/main/templates ..../Child.xml」,那麼我會從解析Child中得到'意外的令牌:< @ line ....'錯誤。
可以這樣做嗎?我是否需要更改模板引擎,如果這甚至可能?理想情況下,它也應該處理Child中的任何令牌。
這在JSP中非常簡單。我以某種方式得到了印象,我可以像處理GSP一樣處理這些文件,但我不確定如何正確使用GSP標記,如果這是真的。
任何幫助,一如既往,非常感謝。
謝謝。
只是$ {.... getText()}解決了我的問題。同樣,Child中的任何令牌也都被擴展了。謝謝你。如果任何人有關於如何使用相對引用(對於Parent)的建議,而不是完整的路徑,我很樂意聽到它。 IRT對我關於JSP的評論來自AbstractCopy:「在複製每個文件時擴展屬性引用,更具體地說,每個文件都使用Groovy的SimpleTemplateEngine進行轉換」。STE的文檔說「模板引擎使用JSP風格<% %>腳本和<%= %>表達式語法或GString風格表達式」。 –
如果我沒有正確地將您的答案標記爲已接受的答案,或者我忽略了其他禮儀步驟,請告訴我。再次感謝你。 –