Annotations vs. Javadoc in Maven Mojos



我对在我的 maven mojo 中注释字段感到困惑。 例如,为了检索MavenProject实例,代码如下所示

/**
* @property property="${project}"
* @readonly
* @required
*/
private MavenProject project;

或者它可能看起来像这样(做同样的事情(

@Parameter(defaultValue = "${project}", readonly = true, required = true)
private MavenProject project;

您甚至可以组合这两种变体,这也以某种方式起作用。

  1. 这些变体之间究竟有什么区别?
  2. 其中一种方法是否已弃用/过时?首选方式是什么?
  3. 变体"javadoc":将程序逻辑编码到注释中有什么意义?

Javadoc 变体是指定应该进入插件描述符的信息的旧方法.xml。Java 注解仅在 Java 5 中引入。

MOJO的Java 5注释提案描述了使用注释而不是Javadoc标签的一些优点:

使用 java 5 注释而不是 javadoc 注释具有多种好处:

  • 插件元数据的编译时检查,某些注释使用枚举
  • 继承支持
  • 大多数 IDE 都支持注释,提供代码完成和语法检查

此外,maven-plugin-plugin 文档提到它允许在不同的项目中拥有 MOJO 超级类,并且它们的源代码不需要可用。

使用哪种方法?

出于上述原因,我会使用 Java 5 注释,也因为您在第三个问题中提出的观点:程序逻辑不应在注释中编码。

最新更新