"Jestem w jakiś sposób zdezorientowany, jeśli chodzi o opisywanie pól w moim mojo mojo MavenProject
Przykład: kod wyglądałby tak
/**
* @property property="${project}"
* @readonly
* @required
*/
private MavenProject project;
lub może wyglądać tak (robi to samo)
@Parameter(defaultValue = "${project}", readonly = true, required = true)
private MavenProject project;
Można nawet połączyć oba warianty, co również działa w jakiś sposób.
- Czym dokładnie jest różnica między tymi wariantami?
- Czy jedna z metod jest przestarzała / przestarzała? Jaki jest preferowany sposób?
- Wariant "javadoc": Jaki jest sens w logowaniu programu kodującego do komentarza?
Odpowiedzi:
2 dla odpowiedzi № 1Wariant Javadoc jest starą metodą określania informacji, które powinny przejść do deskryptora plugin.xml. Adnotacje Java zostały wprowadzone tylko w języku Java 5.
The Propozycja adnotacji Java 5 dla MOJO opisuje niektóre zalety korzystania z adnotacji poprzez tagi Javadoc:
Używanie adnotacji java 5 zamiast javadoc ma wiele zalet:
- sprawdzanie kompilacji pod kątem metadanych wtyczek, z wyliczeniami dla niektórych adnotacji
- wsparcie dla dziedziczenia
- adnotacje są obsługiwane w większości IDE, zapewniając uzupełnianie kodu i kontrole syntaktyczne
Dodatkowo Dokumentacja wtyczki wspomina, że pozwala mieć super klasy MOJO w różnych projektach, a ich kod źródłowy nie musi być dostępny.
Którą metodę zastosować?
Użyłbym adnotacji Java 5 z powodów wymienionych powyżej, a także z powodu pytania zadanego w trzecim pytaniu: logika programu nie powinna być zakodowana w komentarzu.