V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
EscYezi
V2EX  ›  Java

请教一个关于在 Springboot 项目中 Kotlin+ Java 混编打包报错的问题

  •  
  •   EscYezi ·
    yeziyezi · 2019-11-30 20:18:39 +08:00 · 4249 次点击
    这是一个创建于 1853 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近用 Springboot 写了一个小项目,一开始使用纯 Java 写的,半路改成 Kotlin,具体做法是将 Java 类逐个用 Kotlin 重写,然后替换掉原来的 Java 文件,这期间在 Idea 里直接运行和编译都是正常的,全都用 Kotlin 重写后,打包的时候傻眼了:

    项目下的 A 模块提示 kotlin: Unresolved reference: component component 是 common 模块中的一个包,A 的 pom 文件里面已经引入了 common 模块依赖。 搜索半天,尝试了包括将 pom 文件中的 kotlin 版本设置为与 Idea kotlin 插件相同的版本、清缓存、添加 kotlin maven 插件等方案,都没有解决问题。

    项目结构是这样的 project --boot --common --A --B --C

    依赖关系是 A、B 依赖 common,boot 依赖 A、B、common

    pom 文件在这里 https://gist.github.com/yeziyezi/0ebd3dca54628f32fb6e652d498b6629

    第 1 条附言  ·  2020-03-30 21:03:33 +08:00

    刚刚才想起来忘记把解决方案贴上了,打包相关的配置放在启动类所在的module下即可

    4 条回复    2019-12-06 11:50:41 +08:00
    youngxhui
        1
    youngxhui  
       2019-12-01 12:09:26 +08:00
    添加 AllOpen 插件试试
    youngxhui
        2
    youngxhui  
       2019-12-01 12:11:39 +08:00   ❤️ 1
    ```xml
    <dependency>
    <groupId>org.jetbrains.kotlin</groupId>
    <artifactId>kotlin-maven-noarg</artifactId>
    <version>${kotlin.version}</version>
    </dependency>
    <dependency>
    <groupId>org.jetbrains.kotlin</groupId>
    <artifactId>kotlin-maven-allopen</artifactId>
    <version>${kotlin.version}</version>
    </dependency>
    </dependencies>
    ```
    上述依赖添加试试
    EscYezi
        3
    EscYezi  
    OP
       2019-12-01 12:40:48 +08:00
    @youngxhui 添加了之后还是相同的错误
    reeco
        4
    reeco  
       2019-12-06 11:50:41 +08:00   ❤️ 1
    kotlin 文件需要在 kotlin 目录下,java 文件需要在 java 目录下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5718 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 03:03 · PVG 11:03 · LAX 19:03 · JFK 22:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.