2009-08-20 6 views
3

Ich schreibe ein Maven Plugin mit einer Anzahl von konfigurierbaren Parametern. In der Mojo-Klasse sind eine Reihe von Parametern angegeben. Einer dieser Parameter ist erforderlich und muss bestimmte Werte enthalten (sagen wir "Atwood" oder "Spolsky"). Im Moment ist es mit einem Kommentar versehen. @required Feld wie zeigt sich hier:Beschränken Java Maven Plugin Konfigurationsparameter

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

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

die alle gut und gut, aber wenn jemand den Parameter bekommen sie eine generische Fehlermeldung wie so enthalten vergisst:

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

Wenn möglich, entweder (1) schränken Sie die Werte ein, die in das someParmeter-Feld eingegeben werden können, um eine bessere Fehlermeldung zu erhalten, oder (2) geben Sie die Fehlermeldung selbst an, damit ich etwas schreiben kann wie "Der Wert für 'someParameter' muss entweder 'Atwood' sein oder Spolsky?

Dank

Antwort

2

Es gibt eine offene Jira Unterstützung für Aufzählungen Parameterwerte in Maven hinzufügen 2.2 (es bereits in Plexus auf Java 5 unterstützt wird).

Sie können einen Standardwert angeben, damit zumindest das Mojo bei der Initialisierung nicht fehlschlägt. Sie können dann den Wert des Parameters in der execute() -Methode validieren und eine hilfreichere Nachricht ausgeben.

Wenn kein vernünftiger Standardwert vorhanden ist, können Sie den Standardwert auf einen Wert setzen, der in der execute() -Methode ungültig wird. Dies bedeutet, dass der Benutzer ihn definieren muss und eine sinnvolle Fehlermeldung erhält. Zum Beispiel:

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

Vielen Dank, ein falscher Standardwert funktioniert gut. – Lehane

+0

Ich würde nicht sagen, dass es großartig ist, behalte das Jira im Auge, da Enums eine viel bessere Lösung sind –

Verwandte Themen