Java LibGDX项目中未识别Lombok
我正在从事libGDX项目,我想使用Lombok。我接着介绍了在libGDX项目中使用lombok,但不幸的是它不起作用 这种情况看起来是这样的——IntelliJ正在识别lombok,并没有抱怨get/set方法,但当我想运行project(使用gradle)时,会出现java编译器错误,如 错误:找不到符号静态生成器 错误:找不到符号方法setBoardSize(浮点a、浮点b) 所以基本上龙目山没有被认可 通常建议在IntelliJ中设置“启用注释处理”,但我尝试了,但没有成功——我还尝试重新安装Lombok插件,将Lombok版本更改为1.18.8,添加到build.gradle android部分 注释处理器“org.projectlombok:lombok:1.16.6” 但没有解决这个问题。我还相信这不是IntelliJ的问题,因为当我试图使用gradle命令行运行项目时 gradlew桌面:运行 它不起作用了,我也有同样的痕迹 有人有同样的问题吗?如何解决这个问题 我正在把我的身材贴在下面Java LibGDX项目中未识别Lombok,java,gradle,intellij-idea,libgdx,lombok,Java,Gradle,Intellij Idea,Libgdx,Lombok,我正在从事libGDX项目,我想使用Lombok。我接着介绍了在libGDX项目中使用lombok,但不幸的是它不起作用 这种情况看起来是这样的——IntelliJ正在识别lombok,并没有抱怨get/set方法,但当我想运行project(使用gradle)时,会出现java编译器错误,如 错误:找不到符号静态生成器 错误:找不到符号方法setBoardSize(浮点a、浮点b) 所以基本上龙目山没有被认可 通常建议在IntelliJ中设置“启用注释处理”,但我尝试了,但没有成功——我还尝试
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"
}
呃-所以我终于发现了这个问题,这是非常令人惊讶的。结果证明,我的配置很好,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())来管理静态导入:)
下面有几个关于此主题的链接:
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())来管理静态导入:)
下面有几个关于此主题的链接: