2

我正在制作一个使用 SLF4J 的基本程序。使用 SLF4J 的要点是使用 java 类路径为您正在使用的日志记录后端手动指定 .jar 文件(以及该记录器的属性文件)。这意味着与 slf4j(基本 slf4j 之外)相关的 .jar 未在您的 SBT 项目中指定为依赖项。

问题是当你在 sbt 中执行运行命令时,它会将类路径设置为/usr/local/Cellar/sbt/0.11.3-2/libexec/sbt-launch.jar(我在 mac 上通过 homebrew 安装了 sbt)

我的问题是,当我使用 sbt 命令时,有没有办法将 SBT 的类路径目录(在 scala 应用程序上运行时)设置为特定目录,而无需修改实际的 SBT 项目(可能使用属性文件之类的东西?)跑?。目前为了使用日志记录测试我的应用程序,我必须使用 SBT 的 proguard 插件制作一个 min.jar 并手动运行这样的命令(这非常乏味)

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

这没有问题,它是如何在生产中使用该应用程序的。但是,我不想在使用 sbt run 命令时测试我的应用程序(查看日志记录是否有效),而且我不知道如何在不更改 build.sbt/Build.scala 文件的情况下配置 SBT 来执行此操作(其中在生产中使用它显然会导致问题)

请注意,-Dlog4j.configuration如果我可以根据需要指定类路径,则不需要。我已经尝试过-DJava.ext.dirs=<some_path>使用启动 sbt 的命令,但不出所料,它对运行命令没有影响。

4

1 回答 1

0

我不知道这对您来说是否是一个好的解决方案,但您可以user.sbt使用添加的设置添加到工作目录中fullClasspath in Runtime

于 2013-08-24T22:49:29.713 回答