如何在IntelliJ IDEA

时间:2017-01-19 01:53:39

标签: 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工件,并包含项目的输出,而对于我使用的{maver依赖项Extract into Output Root。通过这种方式,可以构建和运行工件,但是会发出大量错误消息,并且某些功能无法正常工作。

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

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

为了更好地阐明我的情况,我有一个“主要”项目和一个“图书馆”,当然图书馆是Main的依赖。由于我没有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>
据我所知,这是非常沮丧的。如果我将库命名为普通依赖项,则会出现这种情况:

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

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

2 个答案:

答案 0 :(得分:2)

在IDEA中,您可以进入工具窗口&#34; Maven Project&#34;,然后双击Package。

答案 1 :(得分:1)

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

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