如何在Android Studio 3.0中正确配置Lombok

10

我想知道在Android Studio 3.0 Beta 2中的Lombok设置有什么问题?

这是我的Gradle构建文件的样子:

buildscript {
    repositories {
        mavenCentral()
        jcenter()
        maven { url "https://plugins.gradle.org/m2/" }
    }
    dependencies {
        classpath "io.franzbecker:gradle-lombok:1.10"
        classpath 'com.android.tools.build:gradle:2.3.3'
    }
}

allprojects {
    apply plugin: "eclipse"
    apply plugin: "idea"

    version = '1.0'
    ext {
        appName = "MyAppName"
        gdxVersion = '1.7.0'
    }

    repositories {
        mavenCentral()
        maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
        maven { url "https://oss.sonatype.org/content/repositories/releases/" }
    }
}

project(":desktop") {
    apply plugin: "java"


    dependencies {
        compile project(":core")
        compile "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion"
        compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
    }
}

project(":android") {
    apply plugin: "android"

    configurations { natives }

    dependencies {
        compile project(":core")
        compile "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"
        natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi"
        natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a"
        natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86"
    }
}

project(":core") {
    apply plugin: "io.franzbecker.gradle-lombok"
    apply plugin: "java"

    dependencies {
        compile "com.badlogicgames.gdx:gdx:$gdxVersion"
        compile "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"
        compileOnly "org.projectlombok:lombok:1.16.18"
    }
}

tasks.eclipse.doLast {
    delete ".project"
}
我已安装lombok插件,IDE中lombok也能正确显示,但是在构建项目时,Gradle找不到Lombok创建的getter/setter。我尝试按照https://projectlombok.org/setup/android和其他Stack Overflow页面的教程进行设置,但是没有任何效果。在Android Studio 2.3中,我甚至无法正确启用注释处理,这就是我升级到最新beta版本的原因,至少那个版本可以工作。

我假设你已经安装了插件(Preferences.. -> Plugins),并且现在启用了注解处理?我刚刚查看了我的一个项目,其中我正在使用Lombok,这里是与Lombok相关的导入: compile 'org.projectlombok:lombok:1.16.16' compile 'javax.annotation:jsr250-api:1.0' provided 'javax.annotation:jsr250-api:1.0' - lidkxx
我尝试过了,但它并没有真正起作用。你可以给我发送一个你的项目,不包括实际的源代码,这样我就可以看到它与我的设置之间的差异吗? - gyurix
现在确实无法做到这一点,但我还注意到我已经添加了一个顶级的 lombok.config 文件(位于我的 main/java 文件夹中),其中包含以下行:lombok.anyConstructor.suppressConstructorProperties=true - lidkxx
我尝试使用lombok.anyConstructor.suppressConstructorProperties=true,我的项目编译通过了,但它不会生成任何getter/setter/constructor。什么都没有。 - 最白目
3个回答

7

我有同样的问题。最终我采用了以下解决方案 -

compileOnly 'org.projectlombok:lombok:1.16.18'
compileOnly 'javax.annotation:javax.annotation-api:1.3.1'
annotationProcessor 'org.projectlombok:lombok:1.16.18'

4
您需要使用新的annotationProcessor而不是aptGradle 迁移 annotationProcessor
annotationProcessor "org.projectlombok:lombok:1.16.18"

我遇到了和你一样的问题,现在已经解决了。

你需要将所有的 apt ... 替换为 annotationProcessor ...,对于使用 apt 的 lombok 和其他任何库都是如此。 - Maelig

1
我遇到了相同的问题,当我将AS升级到3.0和Gradle升级到4.1时,lombok停止生成setter/getter。
因此,如果您正在使用IntelliJ与lombok插件,则对我来说,将lombok从最新的稳定版本降级到0.15.17.2可以解决此问题。 这个问题帮助我解决了它

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接