无法为集合和复杂对象指定maven plugin.xml参数元数据

时间:2017-01-09 09:34:20

标签: java maven

我正在尝试为内部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;
}

当前的plu​​gin.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。

1 个答案:

答案 0 :(得分:0)

您只能指定顶层对象。接下来,为name提供一个getter和setter功能。所有这些都需要让它像这样工作:

<configuration>
  <features>
    <feature>
      <name>NAME</name>
    </feature>
  </features>
</configuration>

无法像这样检查实例中的名称要求,最好是在Mojo中添加validate-method,检查这些额外要求。

PS。我会删除private Feature feature;。通常选择单个或多个,而不是两个。