IntelliJ IDEA中基于Maven的多模块SpringBoot项目打包简易教程

本是古典 何须时尚 2022-12-23 06:26 440阅读 0赞

IntelliJ IDEA中基于Maven的多模块SpringBoot项目打包简易教程

  • 前言
  • 基础java项目打jar包过程
  • 基于Maven的SpringBoot项目打包流程
    • 在IntelliJ IDEA中配置Maven
    • 单模块Maven项目创建与打包
    • 多模块Maven项目打包要点

前言

在项目开发完毕后就是打包部署环节了。java项目打包可以根据类型不同分为jar、war、ear

  • jar,一般可以把类库、可执行程序、站点打包为jar。类库不具备可执行行,一般作为其他项目的依赖包使用,比如通用工具类可以单独打一个jar包。可执行程序中一般会在某个主类中包含程序入口方法,就是main方法,以前的带界面的java swing项目最终打包发布的jar都具有可执行行,一般双击jar文件就会运行程序。站点也可以打包为jar,一般都内嵌tomcat,也是目前springboot最常用的打包方式。
  • war,war对应的是一个独立的java web项目,不会内嵌tomcat。
  • ear,ear对应的是企业级java Bean,以前传统的大型分布式系统架构下的产物。ear的部署需要特定的应用服务器环境,比如JBoss、webshpere、WebLogic。Tomcat是不支持ear部署的。

基础java项目打jar包过程

1、首先打开IntelliJ IDEA,同时打开或新建一个javat项目。
2、在IntelliJ IDEA的顶部工具栏中点击图标Project Structure(Ctrl+Alt+Shift+S),打开Project Structure设置窗口,如下图:
在这里插入图片描述
3、在Project Structure设置窗口中选中左侧菜单中Project Settings->Artifacts,中间部分选择+号在弹出菜单中选择JAR->From modules with dependencies…,如下图:
在这里插入图片描述
4、在弹出的Create JAR from Modules窗口中选择要打包的模块和主类,如下图:
在这里插入图片描述

如果要把应用打包为单个jar文件,则选择extract to the target JAR
如果只是把依赖的jar文件复制到输出目录,而不是打包为单独的jar文件则选择copy to the output directory and link via manifest
5、点击Create JAR from Modules窗体中的OK按钮,回到Project Structure设置界面,如下图:
在这里插入图片描述

这里可以在Name后面修改jar包的名字。
输出目录确保是空的,如果里面有一个MANIFEST.MF文件,要先删除掉。

6、然后点击OK按钮。这样基本的设置就完毕了,然后就可以开始打包了,如果初次打包按照以下流程,选择IntelliJ IDEA顶部菜单Build->Build Artifacts…,如下图:
在这里插入图片描述
7、之后会弹出Build Artifact菜单项,首次编译选择Build,再次编译选择Rebuild。如下图:
在这里插入图片描述
8、编译完毕之后,在输出目录查看xxx.jar。

基于Maven的SpringBoot项目打包流程

在当前微服务架构大行其道的背景下,Docker容器部署是很多项目的首选。因此SpringBoot项目打为jar包进行部署就成为了最常用的打包方式。

在IntelliJ IDEA中配置Maven

1、在IntelliJ IDEA中配置Maven。一般在安装IDEA的时候会自带一个Maven,当然也可以自己安装一个Maven,这时就需要通过IDEA中配置指向自己安装的Maven。选择菜单File->Settings,如下图:
在这里插入图片描述
2、打开系统设置对话框,如下图:
在这里插入图片描述

  • 在Maven home directory:项中可以选择是使用IDEA自带的Maven还是自己安装的,我这里就是选择的自带的。
  • User settings file:项是用户设置文件的选择,默认是没有这个文件的,需要自己编写或复制一个到这个位置。
  • Local repository:项是设置本地仓库的位置,就是项目依赖的jar文件下载后存放的位置。
    3、settings.xml文件内容参考如下:

    <?xml version=”1.0” encoding=”UTF-8”?>



    C:\Users\zheng.m2\repository








    alimaven
    central
    aliyun maven
    http://maven.aliyun.com/nexus/content/groups/public/


    jcenter
    central
    jcenter.bintray.com
    http://jcenter.bintray.com/


    repo1
    central
    Human Readable Name for this Mirror.
    http://repo1.maven.org/maven2/


    repo2
    central
    Human Readable Name for this Mirror.
    http://repo2.maven.org/maven2/




单模块Maven项目创建与打包

1、新建基于Maven的SpringBoot项目,在工程根目录下会生成pom.xml,创建过程此处省略。
pom.xml文件中通常包含以下内容:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <parent>
  5. <groupId>org.springframework.boot</groupId>
  6. <artifactId>spring-boot-starter-parent</artifactId>
  7. <version>2.1.6.RELEASE</version>
  8. </parent>
  9. <groupId>com.xxx</groupId>
  10. <artifactId>gauss</artifactId>
  11. <packaging>jar</packaging>
  12. <version>0.0.1-SNAPSHOT</version>
  13. <properties>
  14. </properties>
  15. <dependencies>
  16. </dependencies>
  17. <build>
  18. <plugins>
  19. <plugin>
  20. <groupId>org.apache.maven.plugins</groupId>
  21. <artifactId>maven-compiler-plugin</artifactId>
  22. </plugin>
  23. <plugin>
  24. <groupId>org.springframework.boot</groupId>
  25. <artifactId>spring-boot-maven-plugin</artifactId>
  26. <configuration>
  27. <fork>true</fork>
  28. </configuration>
  29. </plugin>
  30. <plugin>
  31. <groupId>org.apache.maven.plugins</groupId>
  32. <artifactId>maven-surefire-plugin</artifactId>
  33. <version>2.21.0</version>
  34. <configuration>
  35. <skipTests>true</skipTests>
  36. </configuration>
  37. </plugin>
  38. </plugins>
  39. <finalName>equipment_management</finalName>
  40. <resources>
  41. <resource>
  42. <directory>src/main/resources</directory>
  43. </resource>
  44. <resource>
  45. <directory>src/main/java</directory>
  46. <includes>
  47. <include>**/*.xml</include>
  48. </includes>
  49. </resource>
  50. </resources>
  51. </build>
  52. </project>

2、在项目开发完毕后要想打包部署则可以点击IntelliJ IDEA右侧的Maven导航项会展开Maven面板,如下图:
在这里插入图片描述
在Maven面板中可以看到项目名称Lifecycle有Maven的基本参数项:

  • clean,清除编译。
  • validate,验证工程是否正确,所有需要的资源是否可用。
  • compile,编译源码。
  • test,编译并测试源码。
  • package,只打包成jar,并不会发送到本地仓库。
  • verify,运行任何检查,验证包是否有效且达到质量标准。
  • install,打包并发送到本地仓库。
  • site,生成项目文档。
  • deploy,打包并发送到远程仓库。
    如果通过命令方式执行,则需要在项目目录下执行mvn命令,举例如下:

    mvn clean
    mvn compile
    mvn package

当然了,在IntelliJ IDEA中,我们可以直接通过Maven面板顶部的工具栏按钮Run Maven Build执行相应的命令,如下图:
在这里插入图片描述

从上图可以可以看出,如果我们把maven项目打包成jar,则选中项目声明周期下的package,然后点击Run Maven Build按钮就可以了。这时就会在底部控制台窗口中显示打包日志,如下图:

在这里插入图片描述
出现BUILD SUCESS就说明打包成功了。这样在工程的target目录下就可以看到相应的jar文件了。

多模块Maven项目打包要点

多模块Maven项目的打包与单模块Maven项目打包类似,但是有一些要点要注意,如下:

  • 在多模块的Maven项目中请直接对工程pom.xml进行整理打包,也就是对顶层模块执行打包操作。
  • 在多模块的Maven项目中不要出现各模块互相依赖的情况。
  • 在多模块的Maven项目中如果对某个模块进行单独打包,那么要先对这个模块所依赖的模块进行打包,并上传maven仓库才行。
  • 为了避免把测试代码打包到jar或war中,在执行Run Maven Build之前请先执行Toggle ‘Skip Tests’ mode操作,如下图:
    在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,440人围观)

还没有评论,来说两句吧...

相关阅读

    相关 IntelliJ IDEA创建Maven模块项目

    我想Maven多模块项目应该都不陌生了,特别是在分布式的项目中,往往会有很多的工程,如果不创建多模块的话往往项目会显得很臃肿,不方便查找等等。特别是现在微服务这么普遍的情况下,