导入 jar 文件到 kotlin + spring boot + gradle

Import jar file to kotlin + spring boot + gradle

请帮忙,我有两个 spring 使用 Kotlin + DSL + Gradle 的引导项目,但是,我需要将其中一个导入另一个,但是,它不起作用。这是我试过的:

Correct way to add external jars (lib/*.jar) to an IntelliJ IDEA project

并且谷歌搜索了前两篇文章的许多变体,我也尝试过,但它不起作用。此外,我尝试导入生成的“.jar”文件,但是,在一个非 spring 引导项目(简单的控制台应用程序)中并且它在那里工作,我可以从这个外部项目中看到 类。

提前致谢!

附加数据:

科特林:1.5.30 版 IntelliJ IDEA:v. 2021.2.1(社区版) Gradle: 7.1.1

在这浪费了 2 天后,我设法解决了这个问题,我留下我的解决方案希望它能帮助其他人:

  1. 使用具有以下特征的 Spring 初始化器 (https://start.spring.io/) 从头开始​​生成项目:
  • 1.1。项目:Gradle 项目

  • 1.2。语言:Kotlin

  • 1.3。 Spring引导:select最适合你的版本

  • 1.4。项目元数据 - 执行以下操作非常重要:

  • 组:这在parent项目和child项目中必须相同。示例:com.company

  • Artifact:这应该是区分每个项目的名称(只要不分配给现有项目,您可以输入任何名称)。示例:

    api (parent)

    -> 验证 (child)

    -> 安全 (child)

  • 包名:填写以上数据后,你的每个项目的“包名”应该是这样的:

    com.company.api (parent)

    com.company.auth (child)

    com.company.安全 (child)

  1. 将项目正常导入IntelliJ IDEA,等待Gradle构建项目。

  2. 非常重要!!!不要更改 Spring Initializer 生成的 类 的名称,这是我最大的问题之一。

  3. 在 child 个项目中,始终使用以下命令构建 jar:

    gradle 清理构建

    注意:.jar 文件生成在/build/libs/ 中,您会发现两个文件,例如项目“auth”:

  • auth-1.0.0.jar(大码)

  • auth-1.0.0-plain.jar(小号)

    第一个包含了所有的依赖所以比较大,第二个只包含程序员写的类

  1. 在 parent 项目 (api") 的根目录下,创建文件夹“libs”或任何您想调用的文件夹,并将所有 .jar您之前在此处生成的 child 个项目的文件。

  2. 将以前的文件(包含在“libs”文件夹中)按如下方式导入 parent 项目和 build.gradle.kts 文件(依赖项部分):

依赖关系{ 实现(fileTree(mapOf(“dir”到“libs”,“include”到listOf(“*.jar”)))) }

就是这样。没想到这么简单的一个过程,竟然让人头疼。