同事在 Groovy 官方文檔極度缺乏的情況下,研究出基於 Groovy Template 的代碼生成方案,值得記錄分享。
// 遍歷所有 character 的 name 屬性
characters = book.character
for (c in characters) { println c['@name'] }
// 查找 id 為 2 的 character
character = book.character.find { it['@id'] == '2' }
在 Ant 中調用 Groovy 腳本執行模板:
Binding binding = new Binding()
GroovyShell shell = new GroovyShell(binding)
Script script = shell.parse(new File("groovy/GPath.groovy"))
script.run()
追求速度可用 groovyc 預編譯為 class 檔案。
import,需寫全限定類名。<% %> 無轉義機制。children(),無 parent()。預期後續版本改進。