我有一个Kotlin库,我想发布到Maven存储库并在其他应用程序中使用。
但是当我在Kotlin应用程序中将其添加为依赖项(pom.xml
)时,我收到此警告:
[WARNING] Some JAR files in the classpath have the Kotlin Runtime library bundled into them.
This may cause difficult to debug problems if there's a different version of the
Kotlin Runtime library in the classpath. Consider removing these libraries from the classpath
or use '-Xskip-runtime-version-check' to suppress this warning
[WARNING] .........mylib.jar: (-1, -1) Library has Kotlin runtime bundled into it
这是什么意思?我是否需要以某种方式从我的库JAR中排除kotlin-stdlib
?但是如果我也想在Java应用程序中使用它呢?
答案 0 :(得分:0)
原来这只是我的图书馆项目特有的问题。
我正在使用maven-shade-plugin
生成"脂肪" JAR(包含所有依赖项)替换了原始JAR(因此我部署了捆绑所有依赖项的JAR而不仅仅是库本身和依赖项列表),因为它也可以用作简单的控制台应用程序。
因此解决方案是将应用程序移动到单独的项目或保留原始JAR(在插件配置中使用<shadedArtifactAttached>
+ <shadedClassifierName>
)和/或在使用Maven部署期间禁用此插件此处描述的个人资料https://stackoverflow.com/a/39558669/964478。
答案 1 :(得分:0)
我在 Kotlin 应用中遇到了类似的问题。当我从导入的胖 jar 中排除 kotlin-stdlib 库时,问题就消失了。如果在 Java 应用中使用 fat jar,则不要排除依赖。