2009-08-20 3 views
3

Я пишу плагин maven с несколькими настраиваемыми параметрами. В классе Mojo имеется ряд параметров. Один из этих параметров необходим и должен содержать определенные значения (скажем, либо «Этвуд», либо «Спольский»). На данный момент он аннотируется с помощью. @required поле, как показано здесь:Ограничение параметров конфигурации плагина Java maven

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 » 'или' Спольский '?

Благодаря

ответ

2

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

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

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

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

Спасибо, используя значение фиктивного значения по умолчанию будет отлично работать. – Lehane

+0

Я бы не сказал, что это здорово, следите за этим Джирой, поскольку перечисления - намного лучшее решение –

Смежные вопросы