Mavenプラグインが親プロパティを取得しないのはなぜですか?

StackOverflow https://stackoverflow.com/questions/1223120

  •  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からローカルプラグインメタデータをマージします。これで、プラグインは通常どおりに動作するはずです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top