Ограничение параметров конфигурации плагина Java maven - PullRequest
3 голосов
/ 20 августа 2009

Я пишу плагин 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 Ответ

2 голосов
/ 21 августа 2009

Существует открытое Jira для добавления поддержки перечислений в значения параметров в Maven 2.2 (это уже поддерживается в Plexus на Java 5).

Вы можете указать значение по умолчанию, чтобы, по крайней мере, Mojo не потерпел неудачу при инициализации. Затем вы можете проверить значение параметра в методе execute () и вывести более полезное сообщение.

Если разумного значения по умолчанию нет, вы можете установить значение по умолчанию на значение, которое будет недействительным в методе execute (), это фактически означает, что пользователю придется его определить, и он получит осмысленное сообщение об ошибке. Например:

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