2016-02-05 5 views
7

Я пытаюсь отключить автоматическую перезагрузку/перекомпиляцию в Grails 3.1, поскольку вместо этого я хотел бы использовать JRebel. я нахожу подпружиненным довольно ограниченным, но что более важно постоянно терпит неудачу сОтключить перезагрузку в Grails 3.1/springloaded

File /Users/engrun/Development/projects/grailsPoc/grails-app/controllers/grailsPoc/HelloController.groovy changed, recompiling... 
java.lang.IllegalAccessException: Class org.springsource.loaded.ReloadableType can not access a member of class org.springframework.aop.framework.CglibAopProxy$ClassLoaderAwareUndeclaredThrowableStrategy with modifiers "public" 

Я пробовал все виды настроек, которые я нашел в наличии, однако, никто на самом деле не запрещает перегрузку при выполнении команды запуска приложение

Я попытался

disable.auto.recompile=true 

в командной строке, GRAILS_OPTS, и в application.yml

I пробовали

-noreloading 

флаг, как в командной строке, так и в GRAILS_OPTS.

Согласно документации, это должно было сработать https://grails.org/wiki/Auto%20Reloading

И ответ принимается как правильный один здесь how can I disable reloading in a grails 3.0.0 app? не работает.

У кого-нибудь действительно удалось отключить автоматическую перезагрузку в Grails 3.1? (и успешно настроен Grails 3 с JRebel?)

ответ

7

В 3.x приложения вы можете отключить подпружиненный путем добавления

grails { 
    agent { 
     enabled = false 
    } 
} 

к build.gradle.

+1

Спасибо! Кстати, у вас есть указатель на град Grails DSL? – runeaen

3

Чтобы включить JRebel для Grails 3 проекта необходимо настроить -javaagent аргумента с соответствующим путем к jrebel.jar в build.gradle файл:

tasks.withType(JavaExec) { jvmArgs "-javaagent:jrebel.jar" } 
3

ответ Берт правильно связан с вопросом -> как для отключения автозагрузки.

Однако ответ Антона имеет отношение ко второму/связанному вопросу о том, как заставить Jrebel работать.

теперь у меня есть рабочий пример, который работает как с

gradle bootRun -Pjrebel -> disable springloaded, using jrebel 
gradle bootRun   -> uses springloaded 

и

grails 
grails> run-app 

Мой конфигурации представляет собой сочетание

export GRAILS_OPTS="-javaagent:$JREBEL_HOME/jrebel.jar -Drebel.base=/Users/<username>/.jrebel" 

и build.gradle

rebel { 
    alwaysGenerate = false 
    showGenerated = true 
//rebelXmlDirectory = "build/classes" 
} 

if (project.hasProperty('jrebel')) { 
    bootRun.dependsOn(generateRebel) 
    grails { 
    agent { 
     enabled = false 
    } 
    } 
    tasks.withType(JavaExec) { 
    jvmArgs "-javaagent:jrebel.jar" 
    jvmArgs "-Xverify:none" 
    } 
} 

Спасибо @ burt-beckwith и @ anton-arhipov за ваш вклад!