2012-01-31 37 views
12

My Mavenプロジェクトには約7つのサブモジュールがあります。そのうち6つはJARとしてパッケージ化され、1つはWARとしてパッケージ化されます。マルチモジュールMavenプロジェクトでslf4j + logbackを設定する方法は?

各モジュールに個別のlogback.xml設定を作成する必要がありますか?または、他のすべてのモジュールが依存する「共通の」モジュールを用意し、そこにlogback.xmlを1つ置く必要がありますか?他のオプションはありますか?

ありがとうございました。

答えて

11

すべてのライブラリJARはslf4j-api依存関係のみを使用し、最終的なアプリケーション(あなたのケースでは.warです)には、ログバックの依存関係とその設定を含める必要があります。

<scope>test</scope>slf4j-simpleに従属させるほうが簡単だと思いますが、テストケースの方が使いやすく、通常は十分です。

+0

実際、広域配布を目的としたライブラリは、slf4j-apiのみに依存する必要があります。しかし、すべてのjarがライブラリであるとは限りません。したがって、slf4j-simpleに応じて有効なオプションがありますが、logback-classicに依存するよりも必ずしも良いオプションではありません。 – Ceki

+0

@Ceki ' test 'には、あなたが望む依存関係を自由に使うことができます。各ライブラリモジュールには独自のテスト依存関係があり、いずれにしても競合しません。したがって、それが十分であれば(それは通常です)、それを維持するために「シンプル」を使用します。 – kan

+0

テストスコープを使用することをお勧めします。私が言っていることは、slf4j-simple(テストスコープ内)に依存するのはOKだが、logback-classic(テストスコープ内)の 'jar'型のモジュールに依存しているということだけです。 – Ceki

2

テスト用にjarパッケージ化されたモジュールにlogback.xml構成ファイルを追加したい場合は、logback.xmlを 'jar'タイプの各モジュールにsrc/test/resourcesというフォルダの下に置きます。上述したように、slf4j結合、例えば、 slf4j-simpleまたはlogback-classicは、テストスコープになければなりません。

関連する問題