小编Ivo*_*Ivo的帖子

同时使用 lombok 和 protobuf 会导致 gradle 任务没有依赖项,从而导致构建有时失败

我在gradle中同时使用lombok和protobuf。这会生成独立的任务generateEffectiveLombokConfig和。generateProto然而lombok任务应该依赖于protobuf任务,否则lombok生成的代码引用的是protoc尚未生成的Java代码。

syntax = "proto3";
package my.example.v1;
message Task {
  string id = 1;
  repeated string names_to_print = 2;
}
Run Code Online (Sandbox Code Playgroud)
package org.example;

import lombok.experimental.UtilityClass;
import my.example.v1.*;

@UtilityClass
public class Worker {

    public void work(TaskOuterClass.Task task) {
        // do something
    }

}
Run Code Online (Sandbox Code Playgroud)
plugins {
    id 'java'
    id 'io.freefair.lombok' version '6.4.3'
    id 'com.google.protobuf' version '0.8.18'
}

group 'org.example'

repositories {
    mavenCentral()
}

dependencies {
    implementation "com.google.protobuf:protobuf-java:3.20.1"
    implementation "com.google.protobuf:protobuf-java-util:3.20.1"
}
Run Code Online (Sandbox Code Playgroud)

我尝试将 protobuf 的输出添加为 sourceSet 以确保首先执行 protobuf 任务,但我收到警告:

sourceSets {
    main …
Run Code Online (Sandbox Code Playgroud)

protocol-buffers gradle lombok

3
推荐指数
1
解决办法
1787
查看次数

标签 统计

gradle ×1

lombok ×1

protocol-buffers ×1