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

前言

在项目开发完毕后就是打包部署环节了。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"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  	<!--本地仓库。该值表示构建系统本地仓库的路径。其默认值为${user.home}/.m2/repository。  --> 
  <localRepository>C:\Users\zheng\.m2\repository</localRepository>
  <pluginGroups>
  </pluginGroups>
  <proxies>
  </proxies>
  <servers>
  </servers>
  <mirrors>
     <mirror>
	    <id>alimaven</id>
	    <mirrorOf>central</mirrorOf>
	    <name>aliyun maven</name>
	    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
	</mirror>
	<mirror>
	    <id>jcenter</id>
	    <mirrorOf>central</mirrorOf>
	    <name>jcenter.bintray.com</name>
	    <url>http://jcenter.bintray.com/</url>
	</mirror>
	<mirror>
	    <id>repo1</id>
	    <mirrorOf>central</mirrorOf>
	    <name>Human Readable Name for this Mirror.</name>
	    <url>http://repo1.maven.org/maven2/</url>
	</mirror>
	<mirror>
	    <id>repo2</id>
	    <mirrorOf>central</mirrorOf>
	    <name>Human Readable Name for this Mirror.</name>
	    <url>http://repo2.maven.org/maven2/</url>
	</mirror>
  </mirrors>
  <profiles>
  </profiles>
</settings>

单模块Maven项目创建与打包

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

<?xml version="1.0" encoding="UTF-8"?>
<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">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.6.RELEASE</version>
    </parent>
    <groupId>com.xxx</groupId>
    <artifactId>gauss</artifactId>
    <packaging>jar</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <properties>
    </properties>
    <dependencies>
    </dependencies>
	<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.21.0</version>
                <configuration>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>
        </plugins>
        <finalName>equipment_management</finalName>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
    </build>
</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操作,如下图:
    在这里插入图片描述
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页