V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
EscYezi
V2EX  ›  Java

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

  •  
  •   EscYezi ·
    escyezi · Nov 30, 2019 · 4824 views
    This topic created in 2343 days ago, the information mentioned may be changed or developed.

    最近用 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

    Supplement 1  ·  Mar 30, 2020

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

    4 replies    2019-12-06 11:50:41 +08:00
    youngxhui
        1
    youngxhui  
       Dec 1, 2019
    添加 AllOpen 插件试试
    youngxhui
        2
    youngxhui  
       Dec 1, 2019   ❤️ 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
       Dec 1, 2019
    @youngxhui 添加了之后还是相同的错误
    reeco
        4
    reeco  
       Dec 6, 2019   ❤️ 1
    kotlin 文件需要在 kotlin 目录下,java 文件需要在 java 目录下
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2514 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 06:13 · PVG 14:13 · LAX 23:13 · JFK 02:13
    ♥ Do have faith in what you're doing.