我正在尝试为内部maven 3插件生成plugin.xml元数据文件。 maven-plugin-plugin可以很好地为顶级参数生成元数据,但似乎无法检测和表达用作参数(如必需属性)的复杂对象的配置要求。
@Mojo(name = "feature")
public class FeatureMojo extends AbstractMojo {
@Parameter(required = true)
private List<Feature> features;
@Parameter(required = true)
private Feature feature;
}
public class Feature {
@Parameter(required = true)
private String name;
}
当前的plugin.xml输出为:
<parameter>
<name>feature</name>
<type>local.example.mojo.Feature</type>
<required>true</required>
<editable>true</editable>
<description></description>
</parameter>
<parameter>
<name>features</name>
<type>java.util.List</type>
<required>true</required>
<editable>true</editable>
<description></description>
</parameter>
有没有解决这个限制的方法?
如果可以在插件描述符中表示并且只是生成器中的限制,那么我不会手动生成plugin.xml。
答案 0 :(得分:0)
您只能指定顶层对象。接下来,为name
提供一个getter和setter功能。所有这些都需要让它像这样工作:
<configuration>
<features>
<feature>
<name>NAME</name>
</feature>
</features>
</configuration>
无法像这样检查实例中的名称要求,最好是在Mojo中添加validate-method,检查这些额外要求。
PS。我会删除private Feature feature;
。通常选择单个或多个,而不是两个。