如何在 IntelliJ IDEA 中为 Spring Boot 项目构建 jar 工件

Meh*_*ran 4 java jar intellij-idea maven spring-boot

我正在使用 IntelliJ IDEA 2016.2.5 并且我已经使用 Spring Initializr 来设置一个 Spring Boot 项目。一切正常,我可以在 IDE 中运行和测试我的项目。

现在,当我想构建 jar 文件时,我从命令提示符运行以下命令:

$ mvn package
Run Code Online (Sandbox Code Playgroud)

mypom.xml所在的位置并完美地创建了 jar 文件(需要注意的是,我稍后会告诉您)。问题是,我正在寻找一种在 IDE 中执行相同操作的方法。

到目前为止,我已经尝试在“项目结构”窗口(Alt+Ctrl+Shift+s)中创建一个新的 jar 工件,并在我使用的 maven 依赖项中包含项目的输出Extract into Output Root。通过这种方式,可以构建和运行工件,但会发出大量错误消息,并且某些功能无法正常工作。

有谁知道如何从 IntelliJ IDEA 中为 Spring Boot 项目构建 jar 文件?

我需要在 IDE 中构建我的 jar 文件的原因是我的项目由几个 maven 项目组成,我已经将它们全部作为模块导入到一个项目中。当我在 IDE 中运行主模块时,IntelliJ IDEA 足够聪明,可以将模块视为主模块的依赖项。但是当我使用命令提示符时mvn,这不会发生(这是完全可以理解的,因为 maven 只知道主项目而不是其他项目)。要是我能在 IDE 中构建就好了。

为了更好地阐明我的情况,我有一个“主”项目和一个“库”,当然库是主的依赖项。由于我没有 maven 存储库(此时我不是在寻找一个),我知道的使 maven 编译我的代码成为可能的唯一方法是在 Main 的 pom.xml 中命名库,如这个:

<dependency>
    <groupId>org.example</groupId>
    <artifactId>library</artifactId>
    <version>1.0-SNAPSHOT</version>
    <scope>system</scope>
    <systemPath>${basedir}/lib/library-1.0-SNAPSHOT.jar</systemPath>
</dependency>
Run Code Online (Sandbox Code Playgroud)

据我所知,这是非常不鼓励的。在这种情况下,如果我将库命名为普通依赖项:

<dependency>
    <groupId>org.example</groupId>
    <artifactId>library</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

由于相邻模块(库)输出完全相同的工件,因此 IntelliJ IDEA 能够将依赖项与该模块匹配并编译代码。但是在 的情况下mvn,由于不涉及模块,因此无法完成并且不满足依赖关系。换句话说,我只能配置我的环境以使用mvnIntelliJ IDEA 或 IntelliJ IDEA,但不能同时配置!

小智 5

转到项目根文件夹,例如 springbootdemo 并运行以下命令:

  1. mvnw clean package (这将创建目标文件夹并在其中生成 jar)
  2. mvnw spring-boot:run(这将运行 spring boot 应用程序)。在我的情况下,应用程序名称是springbootdemo,它的位置是C:\Users\springbootdemo,我在这个位置运行了两个命令。


joh*_*nvs 3

在 IDEA 中,您可以进入工具窗口“Maven Project”,然后双击“Package”。

  • 如果找不到“Maven Project”,请使用“Ctrl + E”进行搜索。 (2认同)