java - 如何在 IntelliJ IDEA 中为 Spring Boot 项目构建 jar Artifact

标签 java maven intellij-idea spring-boot jar

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

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

$ mvn package

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

到目前为止,我已经尝试在项目结构窗口 (Alt+Ctrl+Shift+s) 中创建一个新的 jar Artifact 并包含项目的输出,而对于 Maven 依赖项,我使用 Extract into Output Root。这样,可以构建和运行 Artifact ,但会发出很多错误消息,并且某些功能无法正常工作。

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

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

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

<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>

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

<dependency>
    <groupId>org.example</groupId>
    <artifactId>library</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

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

最佳答案

进入项目根目录,如springbootdemo,运行以下命令:

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

关于java - 如何在 IntelliJ IDEA 中为 Spring Boot 项目构建 jar Artifact ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41732485/

相关文章:

java - 如何在 SWT 表格单元格中按键盘键 "ENTER"后开始新行?

Java 8 收集与减少

tomcat - 添加一个 jar 到 maven 的 jetty 插件

java - 不要将 Maven 目标和选项命令打印到 Jenkins 中的控制台输出

java - 如何修复或更正 IntelliJ Idea 中的 "Default File Template"警告

java - 使用Java从十六进制中提取64位数字

java - if语句困惑

java - 使用Java将图像上传到MySql数据库

intellij-idea - Intellij IDEA 中的匈牙利符号

java - 找不到适用于 jdbc :mysql://localhost:3306/egov 的合适驱动程序