我正在建立一个用Kotlin编写的库,并通过Maven打包成一个罐子。在我的pom中,我依赖Kotlin-reflect工件。我能够成功编译和打包,但是当我尝试在另一个项目(即服务)中使用此jar时,出现错误消息:“在运行时未找到Kotlin反射实现。请确保您拥有kotlin- classpath中的reflect.jar”。如果我将依赖项包含在服务的pom中,那么一切正常,但是我希望库jar本身已经具有该依赖项,而图书馆的使用者不必将此依赖项添加到其pom.xml中。
我尝试将依赖项的范围从编译更改为运行时。我只是不明白为什么Kotlin-reflect不会被打包在库的jar中。
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-reflect</artifactId>
<version>1.3.50</version>
</dependency>
服务中发生的错误:
线程“主”中的异常kotlin.jvm.KotlinReflectionNotSupportedError:在运行时找不到Kotlin反射实现。确保您在类路径中有kotlin-reflect.jar。