【问题标题】:kotlin maven compiler unresolved reference to local dependencykotlin maven 编译器未解决对本地依赖项的引用
【发布时间】: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里面有这样的类

【问题讨论】:

    标签: spring-boot maven kotlin


    【解决方案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命名你的包名

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-15
      • 2014-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多