5

Grails 2.3.1 で「run-app」を実行するときに Java システム プロパティを JVM に渡すにはどうすればよいですか? 「grailsw run-app」を実行すると、2 つの JVM が開始されます。Grails コンソールと、Grails アプリケーションを実行する tomcat コンテナー。Grailsターゲットコマンドの間と前にそれらを追加しようとしました。スクリプトを変更する必要があると感じています。

501 640 622 0 9:39AM 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:40AM 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

4

1 に答える 1

1

Eclipse/GGTS でのデバッグで同様の問題を発見しました。grails.project.forkBuildConfig で構成せずにプロジェクトを実行するとフォークしませんが、デバッグは常に 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]]
}
于 2013-12-07T19:25:18.550 に答える