Mavenプラグインが親プロパティを取得しないのはなぜですか?
-
11-07-2019 - |
質問
あるプラグインを別のプラグインに拡張させると、通常は親からプロパティを継承します。時々それは動作しません。 プラグインがロードされると、親からのプロパティはすべてnullです
何が間違っているのでしょうか?私は自分のプロジェクトをmaven-pluginとしてパッケージ化し、ビルドします。
解決
私はこれを自分で見ましたが、Plexusの内部をデバッグするまで、それは私を怒らせました。親が別のプラグインにある場合、プロパティは継承されないと思いますか?
その場合、以下の説明が役立ちます。そうでない場合は、Javadoc注釈のタイプミスである可能性があります。 Mavenは警告なしで認識できないタグをスキップします。
これらのどちらでもない場合、もう少し詳細を投稿できますか?おそらく、失敗したMojoの例ですか?
親が別のプロジェクトにいる場合、問題が発生する理由は次のとおりです。
Mavenプラグインは、Javadocアノテーションを使用して依存関係、目標宣言、およびその他の構成を定義します(Maven 2.1では適切なJavaアノテーションが導入されましたが、プラグインはまだほとんど使用していません)。プラグインがインストール/デプロイされると、Javadocが失われるため、別のjarのプラグインを拡張するプラグインは、親の叢定義のプロパティにアクセスできなくなります。
ただし、回避策があります。プラグインメタデータはMETA-INF / maven / plugin.xmlに出力されます。情報を読み取るサードパーティプラグインがあります親Mojoのplugin.xmlからローカルプラグインメタデータをマージします。これで、プラグインは通常どおりに動作するはずです。