2016-02-05 10 views
7

Ich versuche, das automatische Neuladen/Neukompilieren in Grails 3.1 zu deaktivieren, da ich stattdessen JRebel verwenden möchte. Ich finde gefederte eher begrenzt, aber noch wichtiger ist, nicht ständig mitDeaktivieren Sie das erneute Laden in 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" 

ich alle Arten von Einstellungen versucht haben, die ich zur Verfügung haben jedoch herausgefunden, none deaktiviert tatsächlich neu geladen, wenn der Run-App Befehl

läuft

ich habe

versucht
disable.auto.recompile=true 

auf der Kommandozeile, GRAILS_OPTS und in application.yml

I die

-noreloading 

Flagge, die beide auf der Kommandozeile und GRAILS_OPTS haben versucht.

docs Nach sollte diese https://grails.org/wiki/Auto%20Reloading

gearbeitet haben, Und die Antwort als richtig akzeptiert hier how can I disable reloading in a grails 3.0.0 app? funktioniert auch nicht.

Ist es jemandem tatsächlich gelungen, das automatische Nachladen in Grails 3.1 zu deaktivieren? (Und erfolgreich Grails 3 mit JRebel konfiguriert?)

Antwort

7

In 3.x Anwendungen, die Sie Frühling deaktivieren

grails { 
    agent { 
     enabled = false 
    } 
} 

zu build.gradle Geladen durch Zugabe.

+1

Danke! Btw, hast du Zeiger auf den Grailles Grails DSL? – runeaen

3

Damit JRebel für Grails 3 Projekt, das Sie -javaagent Argument mit dem entsprechenden Pfad die jrebel.jar in build.gradle Datei konfigurieren müssen:

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

Burts Antwort ist richtig im Zusammenhang mit der Frage -> wie um das automatische Laden zu deaktivieren.

Antons Antwort ist jedoch relevant für das zweite/verwandte Problem, Jrebel zur Arbeit zu bringen.

Ich habe jetzt ein funktionierendes Beispiel, die mit beiden

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

und

grails 
grails> run-app 

Meine Config funktioniert, ist eine Kombination aus

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

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

Danke @ burt-beckwith und @ anton-arhipov für Ihre Eingabe!