[我正在尝试为利用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))
我使用Java 11-我的项目确实可以构建和运行。我拥有最新版本的javadoc插件,我在这里还缺少其他东西吗?
听起来我需要注意此处的建议1并设置delombok,然后对似乎有点多余的内容执行javadoc。这是必需的工作流程,还是还有另一种方法?
简短的答案是:不,您最多可以编写脚本,例如,在构建系统中使用首先安装delomboks然后使用Javadocs的插件。
对未来有希望吗? Lombok的onMethod
位是一个不幸的hack,解决了javac中的错误(oracle开发团队不认识的错误,因此它们不太可能得到修复,也没有TCK规则来证明它们; TCK相当照常打开注释)。 Lombok团队还尝试通过添加“任何批注”功能来解决此问题,这是对Java lang规范的非常微小的升级,但由于不清楚的原因而被拒绝(特别是原因:没有时间了(这是在新版本6之前节奏),即使后来提出并构建了多注释功能,也证明了这是不正确的原因。如果我不得不猜测,原因是“ Oracle内没有人认为这很重要”。]
注:我确实设法与一些openjdk工程师进行了交谈,所以也许任何注释都可能使这一天成为现实,这样一来您就可以避免采用两步工作流的可能性大大增加,但是我们仍然在谈论JDK15。最早,并且鉴于事情最后一次令人沮丧,我们(Project Lombok的主要贡献者)试图在Java本身中包含一个小功能,所以不确定再次尝试是花费贡献者时间的好方法。