Gradle с Ломбоком ломается случайно - PullRequest
0 голосов
/ 18 июня 2020

Я только что обнаружил странную проблему.

Последние недели я работал над одним проектом. С самого начала я использовал gradle в качестве инструмента сборки и некоторые аннотации ломбока.

Сегодня утром сборка сломалась, ошибка в том, что код ломбока не вводится.

С помощью git bisect Я нашел вчерашний коммит, который работал нормально. Глядя на разницу, никаких изменений в файлах конфигурации не было.

Теперь, когда я переключаюсь на более новую фиксацию, я могу без проблем построить проект (со всеми моими новыми изменениями), но если я очищу проект, проблема здесь снова.

Подводя итог

  1. Если я удалю каталог сборки, а затем построю проект, он сломается, потому что код, введенный ломбоком, отсутствует.
  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 должен быть полностью независимым).

По правде говоря, я могу жить с это странное исправление прыжков назад и вперед при моих коммитах, но тот факт, что это происходит, и я не знаю, почему меня убивает.

1 Ответ

0 голосов
/ 20 июня 2020

Возможно, вы могли бы попробовать использовать ванильный ломбок без плагина. Например,

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

...