2016-09-07 5 views
0

Mojoプラグインを作成します。私はこのためのプロパティを定義するモジョプラグインののpom.xmlにMojo ParamaterをプロジェクトなしでMojoプラグインのpom.xmlから設定するには

*@Mojo(name = "showModus", requiresProject = false, defaultPhase = LifecyclePhase.PROCESS_RESOURCES)<br> 
public class ShowModus extends AbstractMojo { <br> 
@Parameter (property = "modus", defaultValue = "${modus}")<br> 
private String modus;* 

:それは次のようPamameterがあり

<properties><modus>1.1.1</modus></properties> 

私はモジョの目標は直接呼び出す場合には、MVN

あたりのプロジェクトのための下で正常に動作します

しかし、私はmojoプラグインの直接フォームメイキングレポを呼び出します。 mojoプラグインのないディレクトリでは、パラメータmodusは設定されません。

mvnがmojoプラグインプロジェクトのpom.xmlを見つけることができないため、パラメータに値を設定できないことを理解しています。

mojo mavenプラグインのpomプロパティを、生成されたplugin.xmlに設定する方法はありますか?

私はcompletly理解していない彼らの値を設定またはプラグイン

答えて

0

挨拶

ののpom.xmlから注入することによりモジョの達人は、特定のパラメータでMavenのリポジトリから直接プラグイン(使用)を呼びたいwourdなぜあなたはpom.xmlのプロパティとしてこれらの値を書きたいのですか? Java定数に書き込むほうがはるかに簡単です。しかし、この決定にはいくつかの側面があります。

いくつかの基本:

  1. あなたは、よく読んでpom.xmlを解析することができますMavenXpp3Reader
  2. Mavenのは/META-INF/maven/<groupId>/<artifactId>/pom.xml
  3. プラグインで瓶にpom.xmlを書き込む(このクラスはmaven-modelモジュールの一部です)
  4. getClass().getResourceAsStream(...)
  5. を使用すると、クラスパスリソースにアクセスできます

    final String pathToPluginPom = "/META-INF/maven/de.example/example-maven-plugin/pom.xml"; 
    try (InputStream stream = getClass().getResourceAsStream(pathToPluginPom)) { 
        final MavenXpp3Reader reader = new MavenXpp3Reader(); 
        final Model model = reader.read(stream); 
        final Properties properties = model.getProperties(); 
        final String myPropertyValue = properties.getProperty("myproperty"); 
        getLog().info("Property: " + myPropertyValue); 
    } catch (final IOException | XmlPullParserException ex) { 
        getLog().error("ERROR!", ex); 
    } 
    
  6. それは次のようになり、これらすべての部品を梱包方法getProperties

を使用して、プロパティを取得することができます

関連する問題