如何为 xsbt-web-plugin 的 jetty() 设置系统属性?



我已经将我的项目迁移到0.13.5,并开始使用xsbt web插件。

我想将logback配置为使用类路径之外的配置文件,该类路径由系统属性logback.configurationFile设置(这样我就可以将logconfig保留在war文件之外)。

以前我会简单地设置:

System.setProperty("logback.configurationFile", "/some/path/logback.xml")

在CCD_ 2内部,logback将拾取它。

然而,在将sbt升级到0.13.5并迁移到xsbt web插件系统之后,sbt中设置的属性在运行时似乎不可用(jetty)。

我尝试过以不同的方式设置系统属性,也尝试过在启动sbt时使用-D标志传递系统属性。

在sbt控制台上,我可以看到属性:

eval sys.props("logback.configurationFile")
[info] ans: String = /some/path/logback.xml

但它在网络应用程序中不可用。

关于如何在网络应用程序中设置可用的系统属性,有什么想法吗?

jetty()tomcat()我都试过了。同样的行为。

更新:我最终得到了:

jetty(options = new ForkOptions(runJVMOptions = Seq("-Dlogback.configurationFile=/some/path/logback.xml")))

这是有效的。

如设置分叉JVM选项中所述使用javaOptions in container += "-Dlogback.configurationFile=/some/path/logback.xml"

单独的javaOptions(没有in container)也应该起作用,如在DependenciesDelegates:下的inspect actual中所示

[play-new-app] $ inspect actual container:javaOptions
[info] Task: scala.collection.Seq[java.lang.String]
[info] Description:
[info]  Options passed to a new JVM when forking.
[info] Provided by:
[info]  {file:/Users/jacek/sandbox/play-new-app/}root/container:javaOptions
[info] Defined at:
[info]  /Users/jacek/sandbox/play-new-app/build.sbt:26
[info] Dependencies:
[info]  */*:javaOptions
[info] Delegates:
[info]  container:javaOptions
[info]  *:javaOptions
[info]  {.}/container:javaOptions
[info]  {.}/*:javaOptions
[info]  */container:javaOptions
[info]  */*:javaOptions
[info] Related:
[info]  */*:javaOptions

相关内容

  • 没有找到相关文章

最新更新