我正在开发一个maven插件,其目标是具有类的参数。
我想将此目标配置为使用特殊类。
这是我的maven插件的Mojo:
/**
* 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 :(得分: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>
答案 1 :(得分:0)
我认为这应该有效:
<configuration>
<parser implementation="com.foo.bar.MyEndpointParser"/>
</configuration>
但是,如果将MyEndpointParser配置为Component
,则可能更容易。我找不到任何up2date文档。你可以看一下maven-compiler-plugin的来源。你有compilerId
的参数可以在实现之间切换。