将外部参数传递到sbt-jar(通过sbt程序集创建)



我创建了一个基于https://github.com/sbt/sbt-assembly并且希望从外部加载"logback.xml"one_answers"application.conf",这将覆盖fatjar中打包的两个默认文件。

类似于这个的东西

  java -jar XXX.jar -Dlogger.resource=prod-logger.xml -Dconf.resource=application.conf

与play提供的内容非常相似http://www.playframework.com/documentation/2.0/SettingsLogger

这可以做到吗?如果可以,如何做到?

Logback配置显示:

  1. Logback试图在类路径中找到一个名为Logback.groovy的文件
  2. 如果找不到这样的文件,logback会尝试在类路径中找到一个名为logback-test.xml的文件
  3. 如果找不到这样的文件,它将在类路径中检查文件logback.xml
  4. 如果两个文件都找不到,logback会使用BasicConfigurator自动配置自己,这将导致日志输出定向到控制台

因此,如果您想从外部配置它,您需要访问类路径。关于java的-jar部分-java应用程序启动器说:

使用此选项时,JAR文件是所有用户类的源,其他用户类路径设置将被忽略。

这包括-cp选项。因此,您所面临的问题是使用java -cp XXX.jar:somedir Main,并将您的配置放在somedir中。

最新更新