kotlin maven 编译器未解决对本地依赖项的引用
Posted
技术标签:
【中文标题】kotlin maven 编译器未解决对本地依赖项的引用【英文标题】:kotlin maven compiler unresolved reference to local dependency 【发布时间】:2020-06-12 22:43:14 【问题描述】:Google 了所有的互联网,我不知道如何解决它。 底线:有 3 个用 Kotlin 编写的具有这种文件夹结构的 Spring Boot 应用程序(微服务)
parent-folder:
-api
-service1
-service2
parent-folder
只是一个方便添加微服务的文件夹。
api 是一个 Spring Boot 应用程序,但其中只有实用程序类对所有其他微服务都是通用的
在带有api
的文件夹中我做mvn install
,jar 已安装并进入.m2/
文件夹
这是我添加到 service1
依赖项中的已安装服务,当我尝试这样做时
mvn install
,在带有service1
的文件夹中我收到错误Error: (4,21) kotlin: Unresolved reference: api
为了清楚起见,这里是 pom Api
service 的屏幕
service1
中的依赖关系
编译service1
的插件
当我尝试在service1
中创建mvn install
时,我收到一个错误提示
maven kotlin 编译器只是看不到包,但是如果我将它作为应用程序运行,一切都在 intellij 想法中工作,我不知道我应该做什么;为什么kotlin maven编译器不想从本地maven获取依赖 jar api里面有这样的类
【问题讨论】:
【参考方案1】:在我的情况下,解决方案是 jar 生成的逻辑
api
服务是一个 spring 项目,当我尝试做 mvn clean install
它创建 jar
结构:
api.jar
-META-INF
-BOOT-INF
但是当另一个服务使用它时,maven 找不到所需的包,因为它在包名称中查找,而不是在 META 或 BOOT 文件夹中查找
重要提示! 当您在 src/main/kotlin 之类的项目中创建文件夹时,maven-kotlin-compiler 将在 META 文件夹内的 jar 中创建生成的类,但是如果您创建 src/main/java 它将创建包含在文件夹内生成的类的 jar命名你的包名
【讨论】:
以上是关于kotlin maven 编译器未解决对本地依赖项的引用的主要内容,如果未能解决你的问题,请参考以下文章
Gradle 依赖项未列出本地 maven jar 的依赖项
无法收集对本地 Artifactory Pypi 存储库的补丁依赖项
构建 iOS 框架时未找到 Ktor 和 kotlinx 依赖项