【问题标题】:Restricting Java maven plugin configuration parameters限制 Java maven 插件配置参数
【发布时间】:2009-08-21 17:56:24
【问题描述】:

我正在编写一个带有许多可配置参数的 maven 插件。 Mojo 类中指定了许多参数。这些参数之一是必需的,并且必须包含某些值(比如说,“Atwood”或“Spolsky”)。目前它用a注释。 @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) 自己指定错误消息,以便我可以编写类似“The value for ' someParameter' 需要是 'Atwood' 或 'Spolsky' ??

谢谢

【问题讨论】:

    标签: java maven-2 maven-plugin


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我不会说它很好,请留意 Jira,因为枚举是一个更好的解决方案
    猜你喜欢
    • 2013-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-02
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    • 2014-07-22
    相关资源
    最近更新 更多