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

2019-11-30 20:18:39 +08:00
 EscYezi

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

4095 次点击
所在节点    Java
4 条回复
youngxhui
2019-12-01 12:09:26 +08:00
添加 AllOpen 插件试试
youngxhui
2019-12-01 12:11:39 +08:00
```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
2019-12-01 12:40:48 +08:00
@youngxhui 添加了之后还是相同的错误
reeco
2019-12-06 11:50:41 +08:00
kotlin 文件需要在 kotlin 目录下,java 文件需要在 java 目录下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/624654

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX