簡體   English   中英

Gradle 與 Lombok 隨機中斷

[英]Gradle with Lombok breaks randomly

我剛剛發現了最奇怪的問題。

在過去的幾周里,我一直在做某個項目。 從一開始我就使用 gradle 作為構建工具和一些 lombok 注釋。

今天早上構建失敗,錯誤是沒有注入lombok代碼。

在 git bisect 的幫助下,我發現了昨天的一個特別提交,效果很好。 查看差異,任何配置文件都沒有更改。

現在,當我切換到較新的提交時,我可以毫無問題地構建項目(包含所有新更改),但如果我清理項目,問題又會出現。

總結

  1. 如果我刪除構建目錄然后構建項目,它會因為缺少 lombok 注入代碼而中斷。
  2. 如果我簽出一些特定的提交然后構建,當我返回最新點並重建項目時一切都很好。

這是我的 build.gradle.kts 文件

plugins {
    java
    id("io.freefair.lombok") version "5.1.0"
}

group = "example"
version = "1.0-SNAPSHOT"

repositories {
    mavenCentral()
}

dependencies {
    testImplementation("org.junit.jupiter", "junit-jupiter-api", "5.6.2")
    testRuntimeOnly("org.junit.jupiter", "junit-jupiter-engine", "5.6.2")
    testImplementation("org.assertj", "assertj-core", "3.15.0")
}


configure<JavaPluginConvention> {
    sourceCompatibility = JavaVersion.VERSION_1_8
}

tasks.test {
    useJUnitPlatform()
}

tasks.jar {
    manifest {
        attributes(
                "Main-Class" to "my.main.Class"
        )
    }
}

如您所見,我什至沒有運行時依賴項(這是一個要求,jar 必須完全獨立)。

說實話,我可以忍受這種在我的提交上來回跳躍的奇怪修復,但事實是它正在發生,我不知道為什么要殺了我。

也許您可以嘗試在沒有插件的情況下使用 vanilla lombok。 例如

ext {
    versions = [lombok: '1.18.12'] 
} 
dependencies {
    compileOnly "org.projectlombok:lombok:$versions.lombok"
    annotationProcessor "org.projectlombok:lombok:$versions.lombok"

    testCompileOnly "org.projectlombok:lombok:$versions.lombok"
    testAnnotationProcessor "org.projectlombok:lombok:$versions.lombok"
}

https://projectlombok.org/setup/gradle

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM