2014-08-29 67 views
1

我正在開發一個maven插件,其目標是具有一個類的參數。Maven插件配置設置參數到類

我想配置此目標以使用特殊類。

這是我的Maven插件的魔咒:

/** 
* The used parser. 
* 
* @parameter expression="${parser}" 
*/ 
private EndpointParser parser; 

public void execute() throws MojoExecutionException { 

這是我使用的插件項目的pom.xml:

... 
<plugins> 
     <plugin> 
      <groupId>foo</groupId> 
      <artifactId>bar</artifactId> 
      <configuration> 
       <parser>com.foo.bar.MyEndpointParser</parser> 
      </configuration> 
      <executions> 
       <execution> 
        <goals> 
         <goal>generate</goal> 
        </goals> 
        <phase>generate-sources</phase> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
... 

我如何得到它的工作。

+0

你遇到什麼問題? com.foo.bar.MyEndpointParser是插件的一部分還是使用插件的項目? – ooxi 2014-08-29 10:55:22

+0

插件的用途是什麼?爲什麼使用舊式的xdoclet而不是[Java 5 Annotation](http://maven.apache.org/plugin-tools/maven-plugin-tools-annotations/index.html)? – khmarbaise 2014-08-29 10:55:38

+0

@ooxi'MyEndPointParser'在調用項目的另一個Maven依賴項中聲明。 – matcauthon 2014-08-29 11:02:12

回答

2

如果MyEndPointParser不是您的插件的一部分,而是另一個項目(不是您自己的插件的依賴項),您必須聲明它不是項目的依賴項,而是您的插件的依賴項。

<plugins> 
    <plugin> 
     <groupId>foo</groupId> 
     <artifactId>bar</artifactId> 
     <configuration> 
      <parser>com.foo.bar.MyEndpointParser</parser> 
     </configuration> 

     <dependencies> 
      <dependency> 
       <groupId>foo</groupId> 
       <artifactId>contains-my-endpoint-parser</artifactId> 
      </dependency> 
     </dependencies> 

     <executions> 
      <execution> 
       <goals> 
        <goal>generate</goal> 
       </goals> 
       <phase>generate-sources</phase> 
      </execution> 
     </executions> 
    </plugin> 
</plugins> 
+0

就是這樣。謝謝! – matcauthon 2014-08-29 12:28:10

0

我認爲這應該工作:

<configuration> 
    <parser implementation="com.foo.bar.MyEndpointParser"/> 
</configuration> 

但是,它可能更容易,如果你配置MyEndpointParser爲Component。我無法找到任何up2date文檔。你可以看看maven-compiler-plugin的源代碼。在那裏你有一個compilerId的參數在實現之間切換。

+0

它不起作用。它無法找到給定的班級。任何幫助? – matcauthon 2014-08-29 11:39:04

+0

確保它在插件的類路徑中。 – 2014-08-29 12:18:29