1
想象一下,我們有一個grails插件(我們正在開發)以及我們用來測試grails插件的測試應用程序。我試圖測試插件的_Install.groovy腳本,但每次都是一個過程。Grails:自動化Grails插件安裝
誰能請使用GANT或bash自動化的過程中建議的方法:
- 增量插件
- 包插件
- 檢查的版本,如果插件已經被安裝在測試應用程序,如果它是,刪除它。
- 重新安裝插件。
大加讚賞,
想象一下,我們有一個grails插件(我們正在開發)以及我們用來測試grails插件的測試應用程序。我試圖測試插件的_Install.groovy腳本,但每次都是一個過程。Grails:自動化Grails插件安裝
誰能請使用GANT或bash自動化的過程中建議的方法:
大加讚賞,
對我來說,答案是創建一個Groovy/GANT腳本,並通過命令行執行它。
在我的插件中,我有一個scripts
目錄,並在那裏創建了一個名爲Deploy.groovy
的腳本。
運行命令
grails deploy
自動執行此腳本。腳本使用內置的grails目標打包插件,然後通過命令行執行grails命令。
插件家用/腳本/ Deploy.groovy
includeTargets << grailsScript("PackagePlugin_")
includeTool << gant.tools.Execute
target(main: "This is the script that tries to test what's going on...") {
println ("1. Package the plugin")
packagePlugin()
println ("2. Confirm the directory")
execute.shell("cd ~/quirk-projects/admin-cms-plugin-test && pwd")
println ("3. Remove the plugin ")
execute.shell("cd ~/quirk-projects/admin-cms-plugin-test && grails uninstall-plugin grails-admin-cms-plugin")
println ("4. Install the plugin ")
execute.shell("cd ~/quirk-projects/admin-cms-plugin-test && grails install-plugin ../admin-cms-plugin/grails-admin-cms-plugin-0.1.zip")
println ("5. Run Application")
execute.shell("cd ~/quirk-projects/admin-cms-plugin-test && grails run-app")
println ("6. Your plugin is ready for testing...")
}
setDefaultTarget(main)
要增加,我寫了一個腳本,只需編輯源文件並增加版本號:
插件家用/ scripts/_Events.groovy
eventCompileStart = { kind ->
println("Incrementing Version Number for next time")
def version = metadata.'version'
if (!version) {
version = '1'
} else {
version = version.toInteger() + 1
}
metadata.'version' = version.toString()
metadata.persist()
def file = new File("${basedir}/AdminCmsPluginGrailsPlugin.groovy")
def script = file.text
def array = script.split("\n")
for (int i = 0 ; i < array.length; i++) {
if (array[i].indexOf("def version") > -1) {
array[i] = " def version = 0." + version
}
}
def newScript = array.join(System.getProperty("line.separator"))
file.text = newScript
}