java - 在 maven 插件和调用 maven 项目 pom 之间共享属性
问题描述
我创建了一个 Maven 插件 P,我想将其用作另一个 Maven 项目 A 中的依赖项。我从 Maven 项目 A 的 pom 中为插件 P 提供了一些参数。
我想根据项目A提供的参数在插件P中设置一些属性,并希望它们在项目A的pom中被引用。我该怎么做?
我已经尝试在插件 P 中为 MavenProject 设置属性。如何在项目 A 的 pom 中引用它们?
项目一个 pom 片段:
<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 代码片段
@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
解决方案
找到了解决办法,如果我们在插件配置中添加${project}A作为参数,我们可以给它添加属性,可以在project A pom.xml中引用。
前任:
<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>
<project>${project}</project>
</configuration>
</execution>
</executions>
</plugin>
在插件中可以使用这个 Maven 项目
project.getProperties.setProperty("projectProperty",propertyValue);
推荐阅读
- python - 在为简单理解创建变量时, int 和 .strip() 的唯一目的是什么?
- php - WordPress:不能在 PHP 回显行中包含自定义帖子类型循环(使用 ACF 的“the_field”)
- php - 如何在 Gmail 中发送消息 ID 批量修改 php 客户端库中的 API 调用
- java - 有没有办法按文件类型指定最大文件大小?
- macos - WebStorm 中缺少创建命令行启动器
- npm - 如何使用 VS Code 调试 npm 本身(不是我的代码)?
- python - 为什么这个 Python 密码生成器不起作用,nam 已明确定义
- mobile - Google-oauth 回调适用于桌面浏览器,但不适用于移动浏览器
- vb.net - Vb.net 错误“'InvalidArgument='0' 的值对'index' 无效。参数名称:index'”
- python - 字典和列表的排序问题