【问题标题】:IntelliJ IDE 2018.3 Ultimate + Gradle 5.2.1 AND compileOnlyIntelliJ IDE 2018.3 Ultimate + Gradle 5.2.1 AND compileOnly
【发布时间】:2019-02-20 10:00:44
【问题描述】:

我打算在 IDEA 中构建一个 gradle 5 项目。 lombok 依赖项在 build.gradle 文件中设置为 compileOnly 并运行它导致命令行和 IDEA gradle 工具也成功。

“有趣”的事实是,lombok 不包含在源集中,所以我的 lombok 导入失败....

I googled for it, and in theory since IDEA 2017.2 + Gradle 4 it's a fixed issue, IDEA should pick up compileOnly dependencies as well.

实际上,它不起作用。 任何 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 依赖添加到 testCompileOnlytestAnnotationProcessor
  • 你可以从命令行通过 Gradle 构建吗?
  • 我扩展了我的描述,因为我的主要问题不在于命令行。 :) 在 ./gradlew 依赖命令的情况下,一切都很好,导致成功,testCompileClasspathtestCompileOnly 中都有 lombok。但不是在 IDEA 选择的源代码集中,如果我尝试从 IDE 运行测试,它会因导入问题而失败。
  • 我昨天在这个问题上苦苦挣扎,在这里偶然发现了这个问题。我今天更新到 v2019.1,它现在可以正确显示所有内容。 i.stack.imgur.com/liwx6.png

标签: gradle intellij-idea


【解决方案1】:

根据https://projectlombok.org/setup/gradle 你需要写在你的 build.gradle 中

dependencies {
    compileOnly 'org.projectlombok:lombok:1.18.6'
    annotationProcessor 'org.projectlombok:lombok:1.18.6'
}

对我有用

【讨论】:

  • 是的,我的 build.gradle 文件看起来像这样,它们都是在你写的时候添加的,但是如果我使用 compileOnly 而不是 compile,IDE 没有选择 lombok。跨度>
【解决方案2】:

您可以将 IDEA 版本升级到 2019.1 或使用 4.x 版本的 Gradle。

【讨论】:

    猜你喜欢
    • 2019-04-25
    • 2019-04-29
    • 2017-12-23
    • 2018-04-09
    • 2018-03-15
    • 1970-01-01
    • 1970-01-01
    • 2019-06-10
    • 1970-01-01
    相关资源
    最近更新 更多