/ / Adnotacje vs. Javadoc w Maven Mojos - java, maven

Adnotacje vs. Javadoc w Maven Mojos - java, maven

"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.

  1. Czym dokładnie jest różnica między tymi wariantami?
  2. Czy jedna z metod jest przestarzała / przestarzała? Jaki jest preferowany sposób?
  3. Wariant "javadoc": Jaki jest sens w logowaniu programu kodującego do komentarza?

Odpowiedzi:

2 dla odpowiedzi № 1

Wariant 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.