2

SLF4Jを使った基本的なプログラムを作っています。SLF4J を使用する主なポイントは、Java クラスパスを使用して、使用しているロギング バックエンドの .jar ファイルを (そのロガーのプロパティ ファイルと共に) 手動で指定することです。これは、slf4j に関連する .jar (ベース slf4j の外部) が SBT プロジェクト内で依存関係として指定されていないことを意味します。

問題は、sbt で run コマンドを実行すると、クラスパスが次のように設定されることです/usr/local/Cellar/sbt/0.11.3-2/libexec/sbt-launch.jar(Mac に自作で sbt をインストールしました)。

私の質問は、sbtコマンドを使用するときに、実際のSBTプロジェクトを変更せずに(おそらくプロパティファイルのようなものを使用して)、SBTのクラスパスディレクトリを(scalaアプリケーションで実行する場合に)特定のディレクトリに設定する方法はありますか?走る?。現在、ロギングを使用してアプリケーションをテストするには、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 ファイル (これは本番環境で使用すると明らかに問題が発生します)

-Dlog4j.configuration必要に応じてクラスパスを指定できる場合は、が必要ないことに注意してください。すでに-DJava.ext.dirs=<some_path>sbt を起動するコマンドを入れてみましたが、当然のことながら run コマンドには影響しません。

4

1 に答える 1