簡體   English   中英

Grails:自動執行Grails插件安裝

[英]Grails: Automating Grails Plugin Installations

想象一下,我們有一個Grails插件(正在開發),還有一個用於測試Grails插件的測試應用程序。 我正在嘗試測試插件的_Install.groovy腳本,但是每次都需要一個相當大的過程。

任何人都可以推薦使用gant或bash自動化以下過程的方法:

  1. 增加插件的版本
  2. 打包插件
  3. 檢查插件是否已安裝在測試應用程序中,如果已安裝,請將其刪除。
  4. 重新安裝插件。

非常感激,

對我來說,答案是創建一個Groovy / GANT腳本並通過命令行執行它。

在我的插件中,我有一個scripts目錄,並在其中創建了一個名為Deploy.groovy的腳本。

運行命令

grails deploy

自動執行此腳本。 該腳本使用內置的grails目標打包該插件,然后通過命令行執行grails命令。

plugin-home / scripts / 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)

為了遞增,我編寫了一個腳本,該腳本僅編輯源文件並遞增版本號:

plugin-home / 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


}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM