2

あるプラグインを別のプラグインに拡張させると、通常は親からプロパティを継承します。うまくいかないこともありますが。プラグインが読み込まれると、親のプロパティはすべて null になります

私は何を間違っているのでしょうか?プロジェクトを maven-plugin としてパッケージ化すると、正常にビルドされます。

4

1 に答える 1

1

私はこれを自分で見て、Plexusの内部をデバッグするまで私を怒らせました。親が別のプラグインにある場合、プロパティは継承されないと思いますか?

その場合は、以下の説明が役立ちます。そうでない場合は、Javadocアノテーションのタイプミスである可能性があります。Mavenは、認識できないタグを警告なしにスキップします。

どちらでもない場合は、もう少し詳しく投稿していただけますか?おそらく失敗したモジョの例ですか?


親が別のプロジェクトに参加している場合、問題が発生している理由は次のとおりです。

MavenプラグインはJavadocアノテーションを使用して、依存関係、目標宣言、およびその他の構成を定義します(Maven 2.1では適切なJavaアノテーションが導入されていますが、プラグインではまだほとんど使用されていません)。プラグインがインストール/デプロイされると、Javadocは失われるため、別のjarでプラグインを拡張するプラグインは、親の神経叢定義のプロパティにアクセスできなくなります

ただし、回避策があります。プラグインのメタデータはMETA-INF/maven/plugin.xmlに出力されます。親のMojoのplugin.xmlから情報を読み取り、ローカルプラグインのメタデータをマージするサードパーティのプラグインがあります。プラグインは通常どおりに機能するはずです。

于 2009-08-03T16:00:26.013 に答える