2012-01-05 3 views
2

私はMavenプラグインで作業したいですが、設定の一部として(mojoフィールドにマップされます)、いくつかのタグにXML属性を指定したいと思います。残念ながら、私がしたいのですがどのようなofficial guide(またはしないことがあり、それは単に可能ではないということを意味することもある)の構成ブロック内の属性の使用の一切言及していないMavenプラグインの設定ブロックでXML属性を使用することはできますか?

はこれです:

<plugin> 
    <configuration> 
    <my_option attr="x" /> <!-- is this possible? --> 
    </configuration> 
</plugin> 

これはまったく可能ですか?もしそうなら、これは私のモジョのフィールドにどのようにマップされますか?

答えて

2

なし。 Mavenは属性をサポートしていません。ただし、文字列などのマップを使用することはできます。たとえば、コンパイラプラグインがcompilerArgumentsをどのようにしているのか、あなたが働いているAndroid Mavenプラグインがdex mojo設定のjvmArgumentsをどのようにしているかを見てください。

+0

ありがとうManfred;私は構成を保持しているPOJOを作成しました。私はむしろマニフェストで同じ設定を定義するために使用される構文に似ていると思いますが、私が知る限り、これはこれらのアプローチのいずれでも可能ではありません。 – Matthias

0

私は質問に遅刻していることを知っていますが、答えは異なると思います。結局のところ、Maven antrun pluginは、OPが望む方法とまったく同じです。 targetは、antビルドファイルで使用できるXMLを提供する方法を見てください。

このパラメータは、PlexusConfiguration、 という型のパラメータを宣言して、around lines 164-171を参照してください。

PlexusConfigurationは、DOMなどの任意の周知のXML APIを拡張していない、名前空間をサポートしていないようです、PIは、など、それはあなたがほとんどの目的のために望む基本的なgetChildren/getAttributeNames/getAttributeメソッドを持っています。

また、newer JSR-330 (non-Plexus)の方法でそれを行う方法があるかどうかはわかりませんが、Plexus APIが実行される限り、そのAPIは「これらのAPIは永遠にサポートされるか、少なくともMavenが完全にサポートされるまでMaven 2サポートを削除します。

関連する問題