我正在从事libgdx项目,我想使用Lombok。我遵循了有关在libgdx项目中使用Lombok的简短教程,但不幸的是它不起作用。
情况看起来像这样-Intellij正在识别Lombok,并且不抱怨GET/SET方法,但是当我想运行项目(使用Gradle(时,有Java编译器错误,例如
错误:找不到符号静态构建器
错误:找不到符号方法setBoardsize(float a,float b(
因此,基本上没有认识到Lombok。
通常,建议是在Intellij中设置'启用注释处理',但我尝试没有成功 - 我还尝试重新安装LOMBOK插件,将Lombok版本更改为1.18.8,并添加到该版本中build.gradle android部分
AnnotationProcessor" org.projectlombok:Lombok:1.16.6"
,但没有解决这个问题。我也相信这不是Intellij的问题,因为当我尝试使用
从gradle命令行运行项目时gradlew桌面:运行
它不起作用,我有相同的stacktrace
有人有同样的问题吗?如何解决这个问题?
我正在附加我的 build.gradle
buildscript {
repositories {
mavenLocal()
mavenCentral()
maven { url "https://plugins.gradle.org/m2/" }
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
jcenter()
google()
}
dependencies {
classpath 'org.wisepersist:gwt-gradle-plugin:1.0.6'
classpath 'com.android.tools.build:gradle:3.1.0'
}
}
allprojects {
apply plugin: "eclipse"
apply plugin: "idea"
version = '1.0'
ext {
appName = "light-game"
gdxVersion = '1.9.8'
roboVMVersion = '2.3.3'
box2DLightsVersion = '1.4'
ashleyVersion = '1.7.0'
aiVersion = '1.8.0'
}
repositories {
mavenLocal()
mavenCentral()
google()
jcenter()
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
maven { url "https://oss.sonatype.org/content/repositories/releases/" }
}
}
project(":desktop") {
apply plugin: "java"
apply plugin: "war"
dependencies {
compile project(":core")
compile "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion"
compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
compile "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-desktop"
providedCompile "org.projectlombok:lombok:1.16.6"
}
}
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-arm64-v8a"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86_64"
compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion"
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi"
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi-v7a"
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-arm64-v8a"
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86"
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86_64"
compile "com.badlogicgames.box2dlights:box2dlights:$box2DLightsVersion"
provided "org.projectlombok:lombok:1.16.6"
}
}
project(":core") {
apply plugin: "java"
apply plugin: "war"
dependencies {
compile "com.badlogicgames.gdx:gdx:$gdxVersion"
compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion"
compile "com.badlogicgames.box2dlights:box2dlights:$box2DLightsVersion"
providedCompile "org.projectlombok:lombok:1.16.6"
}
}
project(":html") {
apply plugin: "gwt"
apply plugin: "war"
dependencies {
compile project(":core")
compile "com.badlogicgames.gdx:gdx-backend-gwt:$gdxVersion"
compile "com.badlogicgames.gdx:gdx:$gdxVersion:sources"
compile "com.badlogicgames.gdx:gdx-backend-gwt:$gdxVersion:sources"
compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion:sources"
compile "com.badlogicgames.gdx:gdx-box2d-gwt:$gdxVersion:sources"
compile "com.badlogicgames.box2dlights:box2dlights:$box2DLightsVersion:sources"
}
}
tasks.eclipse.doLast {
delete ".project"
}
ugh-所以最后我找到了这个问题,这很令人惊讶。事实证明,我的配置很好,Intellij很好,但是Lombok本身有一个我不知道的问题 - 此问题是 builder((方法的静态导入,它完全弄乱了编译的字节码课程并导致我的问题
基本上我要做的就是删除
之类的进口import static com.antkowicz.project.MyClass.builder;
public MyClass getMyClass() {
return builder().build();
}
而不是此用法
import static com.antkowicz.project.MyClass;
public MyClass getMyClass() {
return MyClass.builder().build();
}
似乎这个问题是众所周知的,但不会很快解决(或任何时候(,这并不是一件容易的事 - 因此,我们唯一可以做的就是将静态进口与Lombok(至少 Builder(((:)
关于此主题的一些链接:
- 静态导入在Intellij 中不在Lombok Builder中工作
- https://github.com/rzwitserloot/lombok/issues/2044
- https://github.com/rzwitserloot/lombok/issues/1326
- https://github.com/rzwitserloot/lombok/issues/979