maven - Gradle 没有看到来自 mavenLocal 的 Kotlin 依赖项
问题描述
我正在尝试将我的 Kotlin Gradle 项目的一部分提取到单独的存储库中。这是一个 Kotlin 多平台项目(https://github.com/krzema12/fsynth),我想提取'plotassert' 包中的任何内容。
我跟着https://kotlinlang.org/docs/tutorials/multiplatform-library.html。为了在本地测试它,我通过执行 Gradle 的任务将新提取的项目发布到本地 Maven 存储库publishToMavenLocal
,然后放入mavenLocal()
主项目的repositories
部分(这里作为第一项)。在core
项目的依赖项(这里)我把
compile "it.krzeminski.plotassert:PlotAssert:0.0.1"
问题是 IntelliJ/Gradle 看不到这种依赖关系,在尝试使用代码中的某些类时也是如此:
如果我故意使用了错误的依赖名,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 的这种行为不正确吗?我的理解是它应该在“源集”下列出这个依赖项,就像在名称不正确的情况下一样。
我还没有尝试将新提取的项目发布到某个在线仓库,因为我希望有机会在本地迭代而不是发布每个更改。
你能给我一个指针,我在这里缺少什么吗?
解决方案
原来我有
enableFeaturePreview('GRADLE_METADATA')
在图书馆项目中,但在消费者项目中没有。添加它并将 Gradle 包装器版本升级到 4.9 解决了这个问题。
推荐阅读
- javascript - 如何将对象数组添加到 apollo 客户端突变请求?
- machine-learning - 尝试训练数据时使用 pytorch 的大小不匹配
- java - 发生前规则与初始化安全规则的关系
- python-3.x - 替代条件(如果)
- c# - 如何编写从ide中删除笔记的方法?
- postgresql - 如何在函数中将“用户密码”作为参数传递?
- mongodb - MongoDB 在并行阶段展开或合并
- java - 为什么在同一流上调用两个终端操作后不抛出 IllegalStateException?
- c++ - win_bison 将 _m4eof 插入到生成的解析器的末尾
- java - Java Socket 已连接但无法通过 OutputStream.write() 发送消息,但 PrintStream 将工作