IDEA结合spring-boot-maven-plugin如何打jar包

时间:2024-03-17 13:02:17

       工程采用IDEA作为开发工具,通过spring-boot-maven-plugin插件进行打包。在与工程相应的pom.xml文件添加了该插件之后,当运行“mvn package”进行打包时,会打包成一个可以直接运行的 jar文件,使用“java -jar”命令就可以直接运行。添加的插件如下图1所示。

IDEA结合spring-boot-maven-plugin如何打jar包

图1

      在操作打包之前,请确保IDEA导入的工程无误,且MAVEN库也同步更新。另外还需说明一下,本工程MAVEN版本是3.3.9,会默认使用JDK1.5来进行编译,而本工程JDK编译环境是1.8,所以还需在工程pom文件中添加maven-compiler-plugin插件,指定项目源码的JDK版本和编译后的JDK版本,如下图2所示。

IDEA结合spring-boot-maven-plugin如何打jar包

                                                  图2

       接下来,我选择一个工程中一个模块做打包操作。不管操作哪个模块,请先确保该模块pom文件<packaging>节点类型为jar类型。工程导入IDEA后,代码编辑器的右侧会显示一列纵向选项卡,点击“Maven Projects”选项卡, 如果没有显示,依次选择菜单工具栏选项的“View”→“ Tool Windows” →“Maven Projects”,稍后片刻则会罗列出工程所包含的根Maven Projects和各个明细Maven Projects,如下图3所示。

IDEA结合spring-boot-maven-plugin如何打jar包

                                   图3

       不管点击根Maven Projects,还是明细Maven Projects,都会显示三个选项:生命周期“Lifecycle”、插件“Plugins”、依赖“Dependencies”。如果子选项有缺少,可以点击Maven Projects选项卡中项目名称左上角类似刷新的按钮(图3中左上角):Reimport All Maven Projects,稍候即可。因为接下来的打包操作只涉及到Lifecycle,所以在这里有必要说明一下Lifecycle各个子选项:

“clean”是移除所有上一次构建生成的文件;

“validate”是 验证工程是否正确,所需的信息是否完整;

“compile”是编译源码;

“test”是执行单元测试;

“package”是将工程文件打包为指定的格式,例如JAR,WAR等;

“verify”是检查package是否有效、符合标准;

“install”是将包安装至本地仓库,以让其它项目依赖;

“site”是生成项目的站点文档;

“deploy”是将最终的包复制到远程的仓库,以便其它开发人员与项目共享。

       接下来双击图3中的package选项,此时代码编辑器下方的状态栏会实时滚动打包的状态信息。如果有告知某包不存在或找不到符号,绝大多数情况都是由于包缺失导致,则在该项工程的pom.xml文件<dependencies>节点下添加缺失的jar包即可。添加成功后,再次重复上述操作。如果打包成功,状态栏会有详情告知,显示jar包的存放目录,如下图4所示。

IDEA结合spring-boot-maven-plugin如何打jar包

                                                                    图4

       与此同时,IDEA左侧工程栏所属组件下会多出一个target文件体系,如下图5所示。右击jar包文件,选择“File Path”选项可以快捷打开jar包所在文件夹。很多时候根Maven Projects下面会包含众多子Maven Projects,如果打包根Maven Projects出现错误信息较多,不方便排查,可以先逐个打包子MavenProjects,确认无误后再次操作根Maven Projects。

IDEA结合spring-boot-maven-plugin如何打jar包

                                         图5

       上述操作完成后,在命令行窗口通过java -jar指令验证能否正常运行。由于工程保存在D盘,首先还需通过cd指令切换到jar包所在目录,如下图6所示。

IDEA结合spring-boot-maven-plugin如何打jar包

     至此,该模块打包操作完成。