Spring boot kotlin maven编译器对本地依赖项的未解析引用
谷歌搜索了所有的互联网,我不知道如何修复它。 底线是:有3个spring引导应用程序(微服务)是用Kotlin编写的,具有这种文件夹结构Spring boot kotlin maven编译器对本地依赖项的未解析引用,spring-boot,maven,kotlin,Spring Boot,Maven,Kotlin,谷歌搜索了所有的互联网,我不知道如何修复它。 底线是:有3个spring引导应用程序(微服务)是用Kotlin编写的,具有这种文件夹结构 parent-folder: -api -service1 -service2 父文件夹只是一个方便添加微服务的文件夹。 api是一个spring引导应用程序,但在它中,只有实用程序类对于所有其他微服务是通用的 在带有apiI domvn install的文件夹中,安装jar并进入.m2/文件夹 这是我添加到service1依赖项中的已安装服务,
parent-folder:
-api
-service1
-service2
父文件夹
只是一个方便添加微服务的文件夹。
api是一个spring引导应用程序,但在它中,只有实用程序类对于所有其他微服务是通用的
在带有api
I domvn install
的文件夹中,安装jar并进入.m2/
文件夹
这是我添加到service1
依赖项中的已安装服务,当我尝试这样做时
mvn安装
,在带有service1
的文件夹中,我得到错误错误:(4,21)kotlin:未解析参考:api
为清楚起见,下面是pomApi
服务的屏幕
service1中的依赖项
编译service1的插件
当我试图在service1
中进行mvn安装时,我收到一个错误,指示
maven kotlin编译器只是看不到这个包,但是一切都在intellij思想中工作。如果我将它作为应用程序运行,我不知道我应该做什么;为什么kotlin maven编译器不希望从本地maven获取依赖关系
在jarapi中有这样的类
在我的例子中,解决方案是jar生成逻辑
api
服务是一个spring项目,当我尝试进行mvn clean安装时
它创建了jar
,结构如下:
api.jar
-META-INF
-BOOT-INF
但是当另一个服务使用它时,maven找不到所需的包,因为它在包名中查找,而不是在META或引导文件夹中
重要提示!
当您在项目内创建诸如src/main/kotlin之类的文件夹时,maven kotlin编译器将在META文件夹内的jar中创建生成的类,但如果您创建src/main/java,它将在文件夹内创建jar,其中包含与包名同名的生成类