2012-07-24 66 views
2

我正在制作一个使用SLF4J的基本程序。使用SLF4J的要点是使用java classpath手动指定您正在使用的日志记录后端的.jar文件(以及该记录器的属性文件)。这意味着与slf4j(基础slf4j之外)相关的.jar没有在SBT项目中指定为依赖关系。为build.sbt/build.scala设置ClassPath for SBT

的问题是,当你在SBT运行命令,它设置classpath以/usr/local/Cellar/sbt/0.11.3-2/libexec/sbt-launch.jar(我SBT通过自制软件安装在Mac)

我的问题是,有没有一种方法来设置路径目录当我使用sbt命令运行时,对于SBT(当在scala应用程序上运行时)到特定目录而没有修改实际的SBT项目(可能有类似属性文件的东西?)。目前,为了伐木来测试我的申请,我使用ProGuard插件SBT做出min.jar和手动运行如下命令(这是令人难以置信的繁琐)

java -Djava.ext.dirs=<some_path> -Dlog4j.configuration=<some_path> -jar scheduler_2.9.1-1.0.min.jar 

没有一个问题这和它的应用程序是如何用于生产的。但是,我不想测试我的应用程序(以查看日志是否工作),当我使用sbt run命令时,我不知道如何配置SBT来在不改变build.sbt/Build.scala文件的情况下执行此操作在生产中使用它时会引起问题)

请注意,如果我可以指定类路径,则不需要-Dlog4j.configuration。我已经尝试将-DJava.ext.dirs=<some_path>放在启动sbt的命令上,但毫不奇怪,它对运行命令没有影响。

回答

0

我不知道这是否适合您,但您可以在工作目录中添加user.sbt并添加fullClasspath in Runtime设置。