拥有嵌套复杂对象和默认值的maven插件

拥有嵌套复杂对象和默认值的maven插件,maven,maven-3,maven-plugin,Maven,Maven 3,Maven Plugin,在开发我的一些maven插件时,我想到了一种更结构化的方式来提供配置,但我不确定是否有一种方式可以工作 有没有可能有一个MOJO,它以这种方式使用BaseSettings和MavenSettings中的实例,或者我被迫将这些字段直接“polute”到我的MOJO中 import org.apache.maven.plugin.AbstractMojo; 导入org.apache.maven.plugins.annotations.Parameter; 公共抽象类SomeSpecialLabstr

在开发我的一些maven插件时,我想到了一种更结构化的方式来提供配置,但我不确定是否有一种方式可以工作

有没有可能有一个MOJO,它以这种方式使用
BaseSettings
MavenSettings
中的实例,或者我被迫将这些字段直接“polute”到我的MOJO中

import org.apache.maven.plugin.AbstractMojo;
导入org.apache.maven.plugins.annotations.Parameter;
公共抽象类SomeSpecialLabstractMojo扩展了AbstractMojo{
@参数
受保护的BaseSettings BaseSettings=新的BaseSettings();
@参数
受保护的MavenSettings MavenSettings=新的MavenSettings();
}
-

import org.apache.maven.plugins.annotations.Component;
导入org.apache.maven.plugins.annotations.Parameter;
导入org.apache.maven.project.MavenProject;
导入org.apache.maven.project.MavenProjectHelper;
公共类MavenSettings{
@参数(name=“project”,property=“project”,readonly=true,required=true)
受保护的Maven项目;
@组成部分
受保护的MavenProjectHelper projectHelper;
}
-

import org.apache.maven.plugins.annotations.Parameter;
公共类基本设置{
@参数(name=“skip”,defaultValue=“false”)
受保护的布尔跳过=假;
@参数(name=“verbose”,defaultValue=“true”)
受保护的布尔详细值=true;
}
其想法是将一些通用属性捆绑到它们自己的“空间”中,这使我的mojo更小,代码更结构化

编辑: 我想要这种执行配置:


真的
价值1
球门呼叫
莫乔1
覆盖值1
目标2呼叫
莫乔2
价值3
目标3呼叫
莫约3
超驰控制-value012
目标4呼叫
莫约

不确定这是否回答了您的问题,但您可以使用自己的POJO作为参数。这是一个例子。您也可以使用属性或贴图。

不确定这是否回答了您的问题,但您可以使用自己的POJO作为参数。这是一个例子。您也可以使用属性或映射。

您所说的更结构化的配置方式是什么意思?@khmarbaise,与我的示例代码一起发布。我希望在每个MOJO中都有可用的
(我需要创建多个),因为它们需要共享很多参数,这是一个缩小代码重复(并使其更可读)的想法。我的问题可能没有解决方案,因为我高度依赖复杂对象中的
@Parameter
-注释,这是不受支持的:您所说的更结构化的配置方式是什么意思?@khmarbaise与我的示例代码一起发布。我希望在每个MOJO中都有可用的
(我需要创建多个),因为它们需要共享很多参数,这是一个缩小代码重复(并使其更可读)的想法。我的问题可能没有解决方案,因为我高度依赖复杂对象中的
@Parameter
-注释,这是不受支持的: