最近用 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
刚刚才想起来忘记把解决方案贴上了,打包相关的配置放在启动类所在的module下即可
1
youngxhui 2019-12-01 12:09:26 +08:00
添加 AllOpen 插件试试
|
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> ``` 上述依赖添加试试 |
4
reeco 2019-12-06 11:50:41 +08:00 1
kotlin 文件需要在 kotlin 目录下,java 文件需要在 java 目录下
|