改訂された質問(以下の古い質問):
問題: Maven を使用して NetBeans で Jenkins プラグイン プロジェクトをビルドして実行すると、log4j で使用されるJava クラス ローダーが一部のファイル (構成ファイル、カスタム アペンダー、JDBC ドライバーなど) を検出しません。の下の別の場所にコピーする必要がありtarget
ます。
私が望む解決策は次のとおりです。NetBeansで構成された追加のコマンドライン引数をmavenに与えたいです。これにより、maven はビルド後、何かを実行する前に追加のステップを実行する必要があります。ステップは、ファイルのコピー (pom.xml またはコマンド引数で指定) か、スクリプトの実行 (pom.xml またはコマンド ライン引数で指定) のいずれかです。
pom.xml に何を追加しますか? いくつかのmavenプラグイン?
古い質問(参照用)
「my-jenkins-plugin」の Maven プロジェクトがあります。log4jを使用する必要があります。現在、次のパスにlog4j.xmlがあります。
./src/main/resources/log4j.xml
Netbeans で clean&build を実行すると、次の場所にコピーされます。
./target/classes/log4j.xml
./target/generated-classes/emma/classes/log4j.xml
./target/my-jenkins-plugin/WEB-INF/classes/log4j.xml
ただし、log4j はこれらの場所のいずれからもファイルを検出しません。次の場所に手動でコピーする必要があります。
./target/work/webapp/WEB-INF/classes/log4j.xml
そして、期待どおりに動作します。
詳細: Maven 2、Netbeans 7.2。これは標準の Jenkins プラグインであり、当初は で作成されたプロジェクトmvn hpi:create
であり、Netbeans は Jetty を使用して Jenkins を実行します。NetBeans で実行するときに使用されるクラスパスはjava.class.path=C:\work\maven\boot\classworlds-1.1.jar
(既存の jar です) であり、このクラスパスに何かを追加する方法が見つかりませんでしたが、log4j.xmlをその jar ファイルのルートに追加すると、それも見つかり、機能します (明らかに、これは満足のいく解決策ではありません)。コンソール出力を見るだけで、log4jが機能するかどうかはわかります。ログの行が正しいか、恐ろしいlog4j:WARN No appenders could be found for logger (TestLog). log4j:WARN Please initialize the log4j system properly.
エラーであり、他には何もありません。
質問: どうすればどちらかを取得できますか
- 最初の一連の場所にあるlog4j.xml
- またはC:\log4j\log4j.xmlのようなターゲットディレクトリ以外の場所にあるlog4j.xml
- または、maven および/または netbeans を作成して、現在見つかっている場所にlog4j.xmlをコピーします。
- または、NB でデバッグするときに、プラグインlog4j.xmlを clean&build 後に自動的に提供できるようにする他の良い方法はありますか?