将外部参数传递给sbt jar(通过sbt-assembly创建)

时间:2013-07-25 16:04:06

标签: scala sbt logback sbt-assembly

我已经基于https://github.com/sbt/sbt-assembly创建了一个程序集jar项目,并且希望在外部加载“logback.xml”和“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

可以这样做,如果是这样的话?

1 个答案:

答案 0 :(得分:0)

Logback configuration说:

  
      
  1. Logback尝试在类路径中查找名为logback.groovy的文件。
  2.   
  3. 如果未找到此类文件,则logback会尝试在类路径中查找名为logback-test.xml的文件。
  4.   
  5. 如果未找到此类文件,则会检查类路径中的文件logback.xml。
  6.   
  7. 如果找不到任何文件,则logback会自动使用BasicConfigurator自行配置,这将导致日志输出定向到控制台。
  8.   

因此,如果您想在外部配置它,则需要访问类路径。 -jar section on java - the Java application launcher说:

  

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

这包括-cp个选项。因此,您坚持使用java -cp XXX.jar:somedir Main并将配置放在somedir