Как я могу передать свойства системы Java в JVM при выполнении run-app в Grails 2.3.1

Как я могу передать свойства системы Java в JVM при выполнении «run-app» в Grails 2.3.1? При запуске "grailsw run-app" запускаются две JVM. Консоль Grails и контейнер tomcat, на котором запущено мое приложение Grails. Я попытался добавить их между целевой командой Grails и перед ней. У меня такое чувство, что мне нужно будет изменить сценарий.

501 640 622 0 9:39 ttys000 1:20.20 /Library/Java/Home/bin/java -server -Xmx768M -Xms64M -XX:PermSize=32m -XX:MaxPermSize=256m -Dfile.encoding=UTF-8 ... --conf /Users/hbrien/Software/grails-2.3.1/conf/groovy-starter.conf --classpath run-app

501 661 640 0 9:40 ttys000 1:50.24 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java -Xmx1024M -Xms1024M -XX:MaxPermSize=256m -Dgrails.fork.active= true -Dgrails.build.execution.context=/private/var/folder -Djdk.reflect.allowGetCallerClass=true -Dspringloaded=profile=grails;cacheDir=/Users/hbrien/.grails/2.3.1 org.grails.plugins. tomcat.fork.ForkedTomcatServer


person Hugh Brien    schedule 22.10.2013    source источник
comment
Вы пытались использовать переменную JAVA_OPTS? Как в JAVA_OPTS="-Xmx1024M -Xms1024M " grailsw run-app   -  person Elias Dorneles    schedule 23.10.2013
comment
Вы пробовали grails.project.fork в BuildConfig?   -  person    schedule 23.10.2013
comment
Чтобы обойти эту проблему, я просто удалил //grails.project.fork = [ из файла BuildConfig.groovy. Я знаю, что есть способ передать эти переменные в разветвленный процесс, я просто еще не понял этого.   -  person Hugh Brien    schedule 26.10.2013


Ответы (1)


Я обнаружил аналогичную проблему при отладке в Eclipse/GGTS. Запуск проекта без какой-либо конфигурации grails.project.fork в BuildConfig не разветвляется, но отладка всегда создает разветвление Tomcat.

Я думаю, что это побочный эффект этой проблемы: http://jira.grails.org/browse/GRAILS-9836

Странно то, что эта проблема помечена как нерешенная, но запрос на включение объединен и находится в реальной кодовой базе. Я хотел передать некоторые свойства разветвленному процессу Tomcat и получил этот уродливый код в BuildConfig.groovy:

if (!System.getProperty('grails.fork.active')) {

    def forkedJvmArgs = System.getProperties()
        .findAll { it.key.startsWith('PARAM') }
            .collect { new String("-D${it.key}=${it.value}") }

    println "Passing properties to forked process: $forkedJvmArgs"

    grails.project.fork = [run: [jvmArgs: forkedJvmArgs]]
}
person mschayna    schedule 07.12.2013