Ich bin irgendwie verwirrt über das Annotieren von Feldern in meinem Maven Mojo MavenProject
Instanz würde der Code so aussehen
/**
* @property property="${project}"
* @readonly
* @required
*/
private MavenProject project;
oder es könnte so aussehen (tut das gleiche)
@Parameter(defaultValue = "${project}", readonly = true, required = true)
private MavenProject project;
Sie können sogar beide Varianten kombinieren, was auch irgendwie funktioniert.
- Was genau ist der Unterschied zwischen diesen Varianten?
- Ist eine der Methoden veraltet / veraltet? Was ist der bevorzugte Weg?
- Variante "javadoc": Was ist der Punkt beim Kodieren der Programmlogik in einen Kommentar?
Antworten:
2 für die Antwort № 1Die Javadoc-Variante ist die alte Methode zum Angeben der Informationen, die in den Deskriptor plugin.xml gehen sollen. Java-Anmerkungen wurden nur in Java 5 eingeführt.
Das Vorschlag für Java 5-Anmerkungen für MOJOs beschreibt einige Vorteile der Verwendung von Anmerkungen gegenüber Javadoc-Tags:
Die Verwendung von Java 5-Anmerkungen anstelle von Javadoc-Anmerkungen hat mehrere Vorteile:
- Prüfungen zur Kompilierungszeit auf Plugin-Metadaten, mit Aufzählungen für einige Anmerkungen
- Erbschaftsunterstützung
- Annotationen werden in den meisten IDEs unterstützt und bieten Code-Vervollständigung und syntaktische Überprüfungen
Zusätzlich, die maven-plugin-plugin-dokumentation erwähnt, dass es MOJO-Superklassen in verschiedenen Projekten erlaubt, und ihr Quellcode muss nicht verfügbar sein.
Welche Methode verwenden?
Ich würde Java 5-Anmerkungen aus den oben genannten Gründen und auch wegen des Punktes verwenden, den Sie in Ihrer dritten Frage angeben: Die Programmlogik sollte nicht in einem Kommentar codiert sein.