提问者:小点点

无法在具有onmethod属性的lombok setter/getter上生成JavaDoc


我正在尝试为一个利用lombok的项目生成JavaDoc,并且在我对生成的setter和getter进行注释的情况下遇到问题。

代码:

public class Car {
  @Getter(onMethod = @__(@Sensitive))
  @Setter(onMethod = @__(@Sensitive))
  @Sensitive
  @ToString.Exclude
  @Transient
  protected transient String instanceKeyId;

而且,我正在运行:

mvn javadoc:attach-javadocs

当我这样做时,我得到这个错误:

[ERROR] Exit code: 1 - Car.java:26: error: cannot find symbol
[ERROR]   @Getter(onMethod = @__(@Sensitive))

我在Java11-我的项目做构建和运行。我有最新版本的javadoc插件,我错过了什么吗?

听起来我需要听从这里的建议1并设置delombok,然后在看起来有点无关的地方做javadoc。这是这里所需的工作流程,还是有其他方法可以做到这一点?


共1个答案

匿名用户

简短的回答是:不,您最多可以编写脚本,例如使用构建系统中的插件,该插件首先delomboks,然后是javadocs。

未来还有希望吗?lombok的onmethod位是一个不幸的hack,解决了javac中的错误(甲骨文开发团队不承认的错误,因此它们不太可能被修复,也没有TCK规则来证明它们;TCK通常对注释相当轻)。Lombok团队也试图通过添加任何注释功能来解决这个问题,作为对java语言规范的一个非常小的升级,但它被拒绝了,原因不明(具体来说,原因是:没有时间了(这是在新的6个月节奏之前),尽管多注释功能是后来提出和构建的,证明这是一个不正确的原因。如果我不得不猜测,原因是甲骨文内部没有人认为这很重要)。

NB:我确实设法和几个openjdk工程师交谈过,所以也许任何注释都有可能有一天会大大增加你可以避免两步工作流程的可能性,但是我们最早还是在谈论JDK15,考虑到上次我们(Lombok项目的核心贡献者)试图在java中包含一个小功能时令人沮丧的情况,不确定再次尝试是否是花费贡献者时间的好方法。