【发布时间】:2019-02-20 10:00:44
【问题描述】:
我打算在 IDEA 中构建一个 gradle 5 项目。 lombok 依赖项在 build.gradle 文件中设置为 compileOnly 并运行它导致命令行和 IDEA gradle 工具也成功。
“有趣”的事实是,lombok 不包含在源集中,所以我的 lombok 导入失败....
实际上,它不起作用。 任何 Gradle 插件或解决此问题的想法? :)
谢谢。
ui.:
版本 1 将 compileOnly 和 annotationProcessor 用于产品代码和测试导致
- 通过命令行,gradle 能够成功运行所有内容
- 来自 IDEA,这是不可能的,lombok 导入失败
版本 2 使用编译和注释处理器
- 通过命令行,gradle 能够成功运行所有内容
- 来自 IDEA,进口正常,一切正常
dependencies {...compileOnly "org.projectlombok:lombok:${lombokVersion}"
annotationProcessor("org.projectlombok:lombok:${lombokVersion}")
testCompileOnly "org.projectlombok:lombok:${lombokVersion}"
testAnnotationProcessor("org.projectlombok:lombok:${lombokVersion}")...}
【问题讨论】:
-
在命令行中执行
./gradlew dependencies时,您是否在compileClasspath和/或compileOnlyconfigurations 中看到lombok依赖项?正如在下面的回答中所说,这应该在 IDEA 中工作,没有其他需要配置的(刚刚用 IDEA 2018.3.4 / lombok 1.18.6 / Gradle 5.2.1 测试:没问题)。如果在测试类中使用 lombok 注释,还记得将lombok依赖添加到testCompileOnly和testAnnotationProcessor。 -
你可以从命令行通过 Gradle 构建吗?
-
我扩展了我的描述,因为我的主要问题不在于命令行。 :) 在 ./gradlew 依赖命令的情况下,一切都很好,导致成功,testCompileClasspath、testCompileOnly 中都有 lombok。但不是在 IDEA 选择的源代码集中,如果我尝试从 IDE 运行测试,它会因导入问题而失败。
-
我昨天在这个问题上苦苦挣扎,在这里偶然发现了这个问题。我今天更新到 v2019.1,它现在可以正确显示所有内容。 i.stack.imgur.com/liwx6.png
标签: gradle intellij-idea