私はMavenプロジェクトを作成し、log4jでslf4jを使用しています。また、jibxバインディングを使用しています。
src / main / javaは、jibxバインディングと生成されたクラス用の私のクラスフォルダーsrc / main/configフォルダーです。
両方ともソースフォルダとして宣言されています
log4j.propertiesはクラスパスにあります(javaまたはconfigにない場合は関係ありません)
状況は次のとおりです。log4jは機能します。eclipseから、または作成されたjarファイル(maven)を介してプログラムを開始でき、ログが機能します。しかし、「maven clean」を開始し、プロジェクトを再度ビルドして開始すると、「log4j:WARNロガーのアペンダーが見つかりませんでした」というメッセージが表示されます。Eclipseまたはjarファイルから開始します。log4j.propetiesはtarget/classesにコピーされず、jarファイルにも含まれません。Eclipseのlog4j.propertiesをexamplejavaフォルダーからconfigフォルダーに移動して戻します。もう一度Mavenでコンパイルします。プロパティは、classesフォルダーとjarにあります。Mavenがクリーンになった後は、常にこれを実行する必要があります。きれいにした後、なぜプロパティが失われるのかわかりません。それはまだクラスパスのフォルダにあります。何も変更しません。誰かがそれを修正する方法を知っていますか?本当に気がかりです。Thxからjibxまでは、時々掃除する必要があります。私はグーグルで検索し、プロパティがクラスパスにない場合にのみ問題を見つけました。しかし、私の場合はそうです。
必要な情報を見逃した場合は、それを求めてください:)
編集:ああ、はい。リソースフォルダにないプロパティが問題でした。修理済み。
しかし、プロパティがリソースフォルダにない場合でも奇妙な動作です。Eclipseでも、log4jはMavenのクリーンアップ後に動作を停止します。そして、プロパティを最初のフォルダに移動して戻した後、再び機能します。