为grails应用程序指定java -D选项

时间:2016-06-19 19:07:30

标签: java grails logging

我正在尝试在运行grails应用程序时指定java.util.logging.config.file,但它似乎不起作用。 这是我正在尝试的:

export GRAILS_OPTS="-Djava.util.logging.config.file=logging.properties"
export JAVA_OPTS="-Djava.util.logging.config.file=logging.properties"
grails -Djava.util.logging.config.file=logging.properties run-job myJob

一开始我看到了详细的消息,但是一旦grails分支作业处理器,命令行和env选项都会丢失。

1 个答案:

答案 0 :(得分:1)

Grails在幕后使用Gradle。 Gradle默认调用单独的VM来运行或测试应用程序,并且此VM没有设置这些属性。您可以做的是,您可以修改build.gradle文件以将系统属性从Gradle VM传递到分叉VM。这样的事情对我们有用:

bootRun { 
    systemProperty 'server.port', System.getProperty('server.port')
}

也可以使用System.getProperties()传递所有属性。如果你使用谷歌,有很多例子。检查以下内容:https://discuss.gradle.org/t/how-should-i-be-handling-passing-system-properties-from-gradle-to-my-tests/7171

此外,您正在使用logging.properties文件的相对路径,在某些情况下,当前路径可能不同,使用绝对路径可能更适合验证。