2016-02-05 17 views
7

Tôi đang cố tắt tự động tải lại/biên dịch lại trong Grails 3.1 vì tôi muốn sử dụng JRebel thay thế. tôi thấy springloaded khá hạn chế, nhưng quan trọng hơn là liên tục không thành công vớiTắt tải lại trong 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" 

Tôi đã thử tất cả các loại thiết lập mà tôi đã tìm thấy có sẵn, tuy nhiên, không ai thực sự vô hiệu hóa tải lại khi chạy lệnh chạy ứng dụng

tôi đã thử

disable.auto.recompile=true 

trên dòng lệnh, GRAILS_OPTS, và trong application.yml

tôi đã thử số

-noreloading 

cờ, cả trên dòng lệnh và GRAILS_OPTS.

Theo tài liệu, điều này nên đã làm việc https://grails.org/wiki/Auto%20Reloading

Và câu trả lời chấp nhận như là điều đúng ở đây how can I disable reloading in a grails 3.0.0 app? không hoạt động hoặc.

Có ai thực sự đã thành công trong việc tắt tự động tải lại trong Grails 3.1 không? (Và cấu hình thành công Grails 3 với JRebel?)

Trả lời

7

Trong ứng dụng 3.x bạn có thể tắt lò xo bằng cách thêm

grails { 
    agent { 
     enabled = false 
    } 
} 

để build.gradle.

+1

Cảm ơn! Btw, bạn có con trỏ đến Grails DSL gradle? – runeaen

3

Để kích hoạt JRebel cho Grails 3 dự án bạn cần phải cấu hình tham số -javaagent với đường dẫn tương ứng các jrebel.jar trong tập tin build.gradle:

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

câu trả lời Burt là đúng liên quan đến câu hỏi -> như thế nào để tắt tự động tải.

Tuy nhiên, câu trả lời của Anton có liên quan đến vấn đề thứ hai/có liên quan về việc Jrebel hoạt động.

bây giờ tôi có một ví dụ làm việc, hoạt động với cả hai

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

grails 
grails> run-app 

cấu hình của tôi là một sự kết hợp của

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

và 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" 
    } 
} 

Cảm ơn @ burt-beckwith và @ anton-arhipov cho thông tin bạn nhập!

Các vấn đề liên quan