Gradle 没有看到来自 mavenLocal 的 Kotlin 依赖项

Gradle doesn't see Kotlin dependency from mavenLocal

我正在尝试将我的 Kotlin Gradle 项目的一部分提取到一个单独的存储库中。这是一个 Kotlin 多平台项目 (https://github.com/krzema12/fsynth) and I want to extract whatever sits in 'plotassert' package.

我关注了https://kotlinlang.org/docs/tutorials/multiplatform-library.html. To test it locally, I published the newly extracted project to the local Maven repository by executing publishToMavenLocal Gradle's task, and then put mavenLocal() in the main project's repositories section (here, as the first item). In core project's dependencies (here) 我放了

compile "it.krzeminski.plotassert:PlotAssert:0.0.1"

问题是 IntelliJ/Gradle 看不到这种依赖性,在尝试使用代码中的某些 class 时也是如此:

如果我故意使用一些错误的依赖项名称,Gradle 会注意到:

所以这意味着它以某种方式看到本地存储库中存在依赖项。我还在 ~/.m2/repository 中看到本地出版物生成了一些文件:

:~/.m2/repository$ tree
.
└── it
    └── krzeminski
        └── plotassert
            ├── PlotAssert
            │   ├── 0.0.1
            │   │   ├── PlotAssert-0.0.1.module
            │   │   └── PlotAssert-0.0.1.pom
            │   └── maven-metadata-local.xml
            ├── PlotAssert-js
            │   ├── 0.0.1
            │   │   ├── PlotAssert-js-0.0.1.jar
            │   │   ├── PlotAssert-js-0.0.1.module
            │   │   ├── PlotAssert-js-0.0.1.pom
            │   │   └── PlotAssert-js-0.0.1-sources.jar
            │   └── maven-metadata-local.xml
            ├── PlotAssert-jvm
            │   ├── 0.0.1
            │   │   ├── PlotAssert-jvm-0.0.1.jar
            │   │   ├── PlotAssert-jvm-0.0.1.module
            │   │   ├── PlotAssert-jvm-0.0.1.pom
            │   │   └── PlotAssert-jvm-0.0.1-sources.jar
            │   └── maven-metadata-local.xml
            ├── PlotAssert-linux
            │   ├── 0.0.1
            │   │   ├── PlotAssert-linux-0.0.1.klib
            │   │   ├── PlotAssert-linux-0.0.1.module
            │   │   ├── PlotAssert-linux-0.0.1.pom
            │   │   └── PlotAssert-linux-0.0.1-sources.jar
            │   └── maven-metadata-local.xml
            └── PlotAssert-metadata
                ├── 0.0.1
                │   ├── PlotAssert-metadata-0.0.1.jar
                │   ├── PlotAssert-metadata-0.0.1.module
                │   ├── PlotAssert-metadata-0.0.1.pom
                │   └── PlotAssert-metadata-0.0.1-sources.jar
                └── maven-metadata-local.xml

Gradle 或 IntelliJ 的这种行为不正确吗?我的理解是它应该在 "Source Sets" 下列出此依赖项,就像在名称不正确的情况下所做的那样。

我还没有尝试将新提取的项目发布到一些在线存储库,因为我希望有机会在本地迭代而不是发布每个更改。

你能指点一下我在这里遗漏了什么吗?

原来我有

enableFeaturePreview('GRADLE_METADATA')

在库项目中,但在消费者项目中没有。添加它并将 Gradle 包装器版本提升到 4.9 解决了这个问题。