2014-08-29 90 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