限制Java maven插件配置参数

时间:2009-08-20 17:08:26

标签: java maven-2 maven-plugin

我正在编写一个包含许多可配置参数的maven插件。 Mojo类中指定了许多参数。其中一个参数是必需的,必须包含某些值(比如'Atwood'或'Spolsky')。目前它注释了一个。 @required字段如下所示:

public class GenerateMojo extends AbstractMojo{
   ...
   ...

   /**
   *@parameter
   *@required
   */
   private String someParameter;
   ...
   ...
}

这一切都很好,但如果有人忘记包含参数,他们会得到一般的错误消息,如下所示:

Inside the definition for plugin 'xyz' specify the following:
<configuration>    
    ...   
    <someParameter>VALUE</someParameter>
</configuration>

如果可以(1)限制可以输入someParmeter字段的值以提供更好的错误消息,或者(2)自己指定错误消息,以便我可以编写类似“值的值” someParameter'需要'Atwood'或'Spolsky'??

由于

1 个答案:

答案 0 :(得分:2)

有一个开放的Jira可以在Maven 2.2中添加对参数值枚举的支持(Java 5上的Plexus已经支持它。)

您可以指定默认值,这样至少Mojo在初始化时不会失败。然后,您可以在execute()方法中验证参数的值,并输出更有用的消息。

如果没有合理的默认值,您可以将默认值设置为在execute()方法中无效的值,这实际上意味着用户必须定义​​它,并且它们会收到有意义的错误消息。例如:

/**
 * @parameter expression="${someParameter}" default-value="_"
 */
private String someParameter;