【问题标题】:Lombok with Gradle (io.freefair.lombok plugin) creates tons of JavaDoc warningsLombok 与 Gradle(io.freefair.lombok 插件)创建大量 JavaDoc 警告
【发布时间】:2021-07-16 10:34:53
【问题描述】:

我正在使用 Gradle 来包含 Lombok,并且按照建议,我正在使用 freefair lombok 插件;

plugins {
    id "io.freefair.lombok" version "6.0.0-m2"
    // ...
}

给定以下类:

/**
 * Request to add a task to an existing todo list.
 * 
 * @author b_muth
 *
 */
@Value
public class AddTaskRequest{
  /**
   * Identifier of the list.
   */
  @NonNull UUID todoListId;
  
  /**
   * Name of the task to be added.
   */
  @NonNull String taskName;
}

我收到以下警告:

 C:\...\generated\sources\delombok\...\AddTaskRequest.java:23: warning: no comment

  public AddTaskRequest(@NonNull final UUID todoListId, @NonNull final String taskName)

C:\...\generated\sources\delombok\...\AddTaskRequest.java:38: warning: no @return
  public UUID getTodoListId() { 

还有更多。据我所知,freefair 使用 delombok,但没有在生成的源代码中创建足够的 JavaDoc。这是生成的类的摘录:

/**
 * Request to add a task to an existing todo list.
 * 
 * @author b_muth
 */
public final class AddTaskRequest {
  /**
   * Identifier of the list.
   */
  @NonNull
  private final UUID todoListId;
  /**
   * Name of the task to be added.
   */
  @NonNull
  private final String taskName;

  public AddTaskRequest(@NonNull final UUID todoListId, @NonNull final String taskName) {
    if (todoListId == null) {
      throw new NullPointerException("todoListId is marked non-null but is null");
    }
    if (taskName == null) {
      throw new NullPointerException("taskName is marked non-null but is null");
    }
    this.todoListId = todoListId;
    this.taskName = taskName;
  }
  /**
   * Identifier of the list.
   */
  @NonNull
  public UUID getTodoListId() {
    return this.todoListId;
  }
...
}

是否可以阻止这些警告的发生?

【问题讨论】:

    标签: java gradle lombok


    【解决方案1】:

    请在此处查看 (de)lombok 文档,其中解释了如何处理 javadoc cmets:https://projectlombok.org/features/GetterSetter

    lombok v1.12.0 中的新功能: 字段上的 javadoc 现在将被复制到生成的 getter 和 setter。通常,所有文本都被复制,@return 被移动到 getter,而 @param 行被移动到 setter。已移动意味着:从字段的 javadoc 中删除。也可以为每个 getter/setter 定义唯一的文本。为此,您需要创建一个名为 GETTER 和/或 SETTER 的“部分”。一个部分是您的 javadoc 中包含 2 个或更多破折号的一行,然后是文本“GETTER”或“SETTER”,然后是 2 个或更多破折号,该行没有其他内容。如果您使用部分,则不再执行该部分的 @return@param 剥离(将 @return@param 行移动到该部分中)。

    编辑:

    除了修复 javadoc cmets 本身,您还可以通过在 javadoc 任务中添加 -Xdoclint:-missing 选项来消除警告:

    tasks.withType(Javadoc) {
        options.addBooleanOption("Xdoclint:-missing", true)
    }
    

    【讨论】:

      猜你喜欢
      • 2014-02-26
      • 2017-01-29
      • 2015-06-13
      • 1970-01-01
      • 2018-08-14
      • 2019-08-16
      • 1970-01-01
      • 1970-01-01
      • 2019-02-11
      相关资源
      最近更新 更多