2013-04-03 5 views
1

Представьте, что у нас есть плагин Grails (который мы разрабатываем), а также тестовое приложение, которое мы используем для тестирования плагина Grails. Я пытаюсь протестировать скрипт _Install.groovy плагина, но каждый раз это процесс.Grails: автоматическая установка плагинов Grails

Может кто-нибудь пожалуйста, рекомендует способ использование Ганта или Баш автоматизировать процесс:

  1. увеличивает версию плагина
  2. пакета плагин
  3. Проверьте, если плагин уже установлен в тесте приложение, и если это так, удалите его.
  4. Переустановите плагин.

Очень ценивший,

ответ

0

Ответ для меня было создать заводной/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) 

прирастить, я написал скрипт, который просто редактирует исходный файл и увеличивает номер версии:

плагин-дом/сценарии/_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 


}