2016-02-05 54 views
7

Próbuję wyłączyć automatyczne ponowne ładowanie/ponowne kompilowanie w Grails 3.1, ponieważ chciałbym zamiast tego użyć JRebel. znajdę sprężynowymi raczej ograniczony, ale co ważniejsze, jest ciągle nie zWyłączanie ponownego ładowania w 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" 

Próbowałem wszystkie rodzaje ustawień, które znalazłem dostępne, jednak żaden faktycznie wyłącza przeładunkowych podczas uruchamiania komendy run-app

próbowałem

disable.auto.recompile=true 

na linii poleceń, GRAILS_OPTS, aw application.yml

i wypróbowałem flagę

zarówno w wierszu poleceń, jak i GRAILS_OPTS.

Według docs, powinno to pracowali https://grails.org/wiki/Auto%20Reloading

A odpowiedź zaakceptowane jako poprawny tutaj how can I disable reloading in a grails 3.0.0 app? nie działa albo.

Czy ktoś rzeczywiście zdążył wyłączyć automatyczne przeładowywanie w Grails 3.1? (i pomyślnie skonfigurowany Grails 3 z JRebel?)

Odpowiedz

7

w aplikacjach 3.x można ją wyłączyć sprężynowy dodając

grails { 
    agent { 
     enabled = false 
    } 
} 

do build.gradle.

+1

Dzięki! Btw, masz wskaźnik do gradle Grails DSL? – runeaen

3

Aby włączyć JRebel dla Grails 3 projektu trzeba skonfigurować -javaagent argumentu z odpowiednią ścieżką do jrebel.jar w build.gradle pliku:

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

Burt odpowiedź jest poprawna związane z pytaniem -> jak aby wyłączyć autoreloadowanie.

Jednak odpowiedź Anton jest istotna dla drugiego/powiązanego problemu, aby Jrebel zadziałał.

mam teraz działający przykład, który działa zarówno

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

i

grails 
grails> run-app 

Mój config to połączenie

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

i 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" 
    } 
} 

Dzięki @ burt-beckwith i @ anton-arhipov za twój wkład!