【发布时间】:2019-06-27 02:53:51
【问题描述】:
我创建了一个 Maven 插件 P,我想将其用作另一个 Maven 项目 A 中的依赖项。我从 Maven 项目 A 的 pom 中为插件 P 提供了一些参数。
我想根据项目A提供的参数在插件P中设置一些属性,并希望它们在项目A的pom中被引用。我该怎么做?
我已尝试在插件 P 中设置 MavenProject 的属性。如何在项目 A 的 pom 中引用它们?
项目 A pom sn-p:
<plugin>
<groupId>sample.plugin</groupId>
<artifactId>sample-plugin</artifactId>
<version>1.0.0-SNAPSHOT</version>
<executions>
<execution>
<goals>
<goal>testing</goal>
</goals>
<configuration>
<param1>value1</param1>
<param2>value2</param2>
</configuration>
</execution>
</executions>
</plugin>
插件P代码sn-p
@Mojo( name = "testing")
public class TestMojo extends AbstractMojo
{
.
.
@Parameter(property = "param1")
private String param1;
@Parameter(property = "param2")
private String param2;
@Parameter(defaultValue = "${project}")
private org.apache.maven.project.MavenProject project;
public void execute() throws MojoExecutionException
{
if(param1.equalsIgnoreCase("value1")){
project.getProperties().setProperty("PROP1","val1");
} else{
project.getProperties().setProperty("PROP1","val3");
}
if(param2.equalsIgnoreCase("value2")){
project.getProperties().setProperty("PROP2","val2");
} else{
project.getProperties().setProperty("PROP2","val3");
}
}
}
I expect the PROP1 and PROP2 to be used in project A
【问题讨论】:
-
您的方法看起来不错。您遇到了哪些问题?
-
谢谢。我想要实现的是,在项目A的pom中使用P插件中设置的属性!!
-
我应该使用项目属性还是系统属性在项目A pom中访问?
标签: java maven plugins pom.xml maven-plugin