以下來自grails「Scripts」dir中指定目標的螞蟻片段,創建一個帶有所有類的校驗和,因此可以在目標服務器上進行檢查。Ant構建任務:如何使用grails更改ant命令的basedir(例如,如何做「cd」)2.5
螞蟻的輸出是這樣的文件:
c9b1c71b31e53e99ff31b4be0a1284558aa019ec target/classes/bo/ApiRequestFilters$_closure1.class
ff936fddc1b99ba323493b131d271ca4feb0f5dd target/classes/bo/ApiRequestFilters.class
df7a12fe1182b5fc10177a2559a3a0cbb0709e29 target/classes/com/xxx/yyy/apiConstants.class
的問題是文件路徑中的字「目標」。當應用程序部署到webapp下的tomcat時,沒有目標。
這怎麼可以避免?例如。如果ant.concat函數使用了一個basedir:「target」,如果您可以執行ant.cd(「target」)或類似的命令,它將解決問題,或者如果您可以指定每個目標的basedir,但這似乎不可能?
來源:
ant.checksum(fileext:".sha1", algorithm: "SHA", forceoverwrite: "yes", pattern: "{0} {3}") {
fileset(dir: "target/classes") {
include(name:"**/*.class")
}
}
ant.concat(destfile:"target/classes.sha1") {
fileset(dir: "target/classes") {
include(name:"**/*.sha1")
}
}
我發現了一個哈克的方式 - 刪除 「目標/」 從SHA1文件中使用後:
ant.replace(file:"target/classes.sha1", token:" target/", value: " ")
有沒有更好的辦法?