2016-09-26 2 views
1

Ich bin derzeit in der Entwicklung einer Anwendung basierend auf Grails (Version 3.12) beteiligt. Leider kenne ich das Ökosystem, das den Rahmen umgibt, nicht. Ich möchte einige Fehler beheben, die im Code vorhanden sind, aber ich weiß nicht, wie ich die Anwendung debuggen soll.Wie Grails-Anwendungen zu debuggen

Ich habe gelesen, dass Remote-Debugging die beste Wette für Grails-Anwendungen ist. Dies ist eigentlich eine Art funktioniert: Ich habe ein „Remote“ Ausführungsprofil in intellij und startete grails wie folgt hinzugefügt:

export GRAILS_OPTS="agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005" 
grails run-app 

Dies hat jedoch zur Folge hat, dass ich die Fernbedienung zweimal in intellij zu starten habe. Ich vermutete, dass dies darauf zurückzuführen ist, dass bei grails zwei Gabeln der JVM laufen (eine für die Kompilation/etc und eine für die Ausführung). Außerdem wird anscheinend eine neue JVM gegabelt, wenn sich der Quellcode ändert.

Meine Frage ist: Wie bekomme ich die Grails-Optionen über die Konfiguration zum richtigen JVM-Prozess?

Ich fand einen älteren ähnlichen Thread here. Dies gilt jedoch 2 bis Grails und nicht grails 3. Insbesondere die buildConfig.groovy ist weg und das Hinzufügen Dinge wie

grails.project.fork = [ 
    // ... 
    run: [maxMemory:1024, minMemory:64, debug:false, maxPerm:256, jvmArgs: '..arbitrary JVM arguments..'] 
    // ... 
] 

zu build.gradle verursacht Ausnahmen geworfen werden.

Antwort

1

Es gibt mehrere Möglichkeiten, um das zu tun, wonach Sie fragen. Ein Ansatz, der nicht braucht sich bringt, um die Standardeinstellung zu ändern erzeugte Datei erstellen oder alle Umgebungsvariablen gesetzt, um den Lauf der Anwendung wie folgt aus:

./gradlew bootRun --debug-jvm 

Das Start verursacht pausieren, bis Sie den Remote-Debugger anschließen. Ich mache das sehr oft.

Eine andere Möglichkeit ist, Application.groovy zu öffnen, klicken Sie mit der rechten Maustaste und wählen Sie "Debug ...".

+0

Bei keinem dieser Ansätze müssen spezielle Umgebungsvariablen festgelegt werden. –