You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Maven编译Kotlin项目时本地依赖TBDCore报未解析引用

问题修复方案

根因分析

  1. TBDCore项目pom未显式指定Kotlin源码目录,kotlin-maven-plugin默认无法正确识别纯Kotlin项目的源码路径,导致编译后jar包内仅包含shade引入的第三方依赖类,没有你编写的业务Kotlin类文件
  2. 可自行解压本地.m2仓库下的dev/mrshawn/TBDCore/1.0.0/TBDCore-1.0.0.jar验证,查看是否存在你编写的业务类对应的.class文件,正常缺失即为该问题导致

修复步骤

第一步:修改TBDCore的pom.xml配置

在TBDCore的<build>标签下新增Kotlin源码目录配置,和WorldFund的配置保持一致:

<build>
    <!-- 新增以下行指定Kotlin源码目录 -->
    <sourceDirectory>src/main/kotlin</sourceDirectory>
    <!-- 原有plugins、resources等配置保持不变 -->
    ...
</build>

第二步:重新构建安装TBDCore

执行构建命令:
mvn clean install
构建完成后再次解压本地仓库的TBDCore jar包,确认你编写的业务类已被正确编译打包到jar内。

第三步:调整WorldFund依赖scope(可选,按需调整)

如果你部署服务时不会提前在服务端放置TBDCore的jar包,可将WorldFund中TBDCore的依赖scope从provided改为compile,这样shade插件会自动把TBDCore打包进WorldFund的最终jar包中。

第四步:重新构建WorldFund

执行构建命令:
mvn clean kotlin:compile install
此时编译阶段不会再出现未解析引用的报错。

额外校验项

如果修改后仍报错,可依次检查以下配置:

  • 确认两个项目的Kotlin版本完全一致(当前两个pom均为1.6.0,符合要求)
  • 确认TBDCore中的类包名声明正确,WorldFund中导入的包名大小写和TBDCore完全匹配(Kotlin对包名大小写敏感)
  • 确认本地.m2仓库中TBDCore的pom文件和修改后的配置一致,无旧版本缓存问题

内容的提问来源于stack exchange,提问作者MrShawn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 22:06:07