使用 kotlin-maven-plugin 构建的 jar 中的 Kotlin 类

Posted

技术标签:

【中文标题】使用 kotlin-maven-plugin 构建的 jar 中的 Kotlin 类【英文标题】:Using Kotlin classes from jar built with kotlin-maven-plugin 【发布时间】:2018-07-04 06:49:48 【问题描述】:

我使用 kotlin-maven-plugin (v 1.2.21) 构建了一个 Java/Kotlin 混合库。该库实际上是一个 Spring Boot 应用程序 (v 1.5.9)

现在,当我在另一个项目中将其声明为依赖项时,我遇到了奇怪的问题: - 我的 IDE (Intellij) 能够找到我需要的类:自动完成向我推荐这些类,我没有错误 - 但是当我尝试构建我的应用程序时,我得到编译错误,说我试图导入的包(以及类)不存在。

当我在 IDE 中展开 jar 时,我可以看到这些类存在于预期的包中,位于 BOOT-INF/classes 目录下。

所以我有点困惑...是否有特定的配置可以放入 kotlin-maven-plugin ,以便生成的 jar 可以被其他人使用?

谢谢

【问题讨论】:

【参考方案1】:

好的,实际上,它与 Kotlin 无关,而与 Spring Boot 无关……

由于here解释的Spring Boot 1.4.0版本之后结构发生了变化,现在需要添加这个配置才能导入jar

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <classifier>exec</classifier>
    </configuration>
</plugin>

【讨论】:

以上是关于使用 kotlin-maven-plugin 构建的 jar 中的 Kotlin 类的主要内容,如果未能解决你的问题,请参考以下文章

未找到插件:jpa

Kapt 无法与 OpenJDK 16 一起正常工作

Maven 如何编译 java 和 kotlin 编码的混合项目

使用自定义构建器使用 Android 创建发布构建

使用自动工具构建系统/在单独的“构建”目录中构建

使用 GraphQL 构建 BFF Demo