一 打包方式
1 构建JAR包
2 构建WAR包
3 指定Main-Class
二 打jar包
1 cmd进入指定项目
2 打包
mvn -Dmaven.test.skip -U clean package
结果打包失败
![](https://i-blog.csdnimg.cn/blog_migrate/c6aa63a9ba6bcbee6bca07b35a9e1841.png)
修改主pom文件
增加mainClass部分
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.imooc.firstappdemo.FirstAppDemoApplication</mainClass>
</configuration>
</plugin>
</plugins>
</build>
重新打包,依然失败
![](https://i-blog.csdnimg.cn/blog_migrate/f25b188e755addc0be994a3656e2c95c.png)
根据提示,修改主pom文件,增加依赖部分
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<dependencies>
<dependency>
<groupId>com.imooc</groupId>
<artifactId>model</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
<configuration>
<mainClass>com.imooc.firstappdemo.FirstAppDemoApplication</mainClass>
</configuration>
</plugin>
</plugins>
</build>
重新打包,依然失败
![](https://i-blog.csdnimg.cn/blog_migrate/29d835b3c341f9ab3f5ce7a0bff9a376.png)
换另外一种打包方式
mvn -Dmaven.test.skip -U clean install
依然失败
![](https://i-blog.csdnimg.cn/blog_migrate/e8cb99ad77282a00db80f986c4039462.png)
应该将下面build代码放入到web的pom中,因为web已经变成了项目的主模块
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.imooc.firstappdemo.FirstAppDemoApplication</mainClass>
</configuration>
</plugin>
</plugins>
</build>
用 mvn -Dmaven.test.skip -U clean package 再次打包,打包成功
![](https://i-blog.csdnimg.cn/blog_migrate/28b749216f79ea190620acc11050cc6d.png)
三 jar包启动,启动成功
![](https://i-blog.csdnimg.cn/blog_migrate/2ae6b6d18cfbcd88535da23448fb43c7.png)
![](https://i-blog.csdnimg.cn/blog_migrate/709d4618d2d8ca58a1a1f5aeca74ca30.png)
四 测试
![](https://i-blog.csdnimg.cn/blog_migrate/64bcdd177ada1dd0b7e8ad08cad5817d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2fb4fe585d251b4e27085f2b18fceaee.png)
五 war打包方式
<?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.0http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>first-app-demo</artifactId>
<groupId>com.imooc</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>web</artifactId>
<!--將packaging值(默认:jar)调整成war
-->
<packaging>war</packaging>
<!--web依赖于persistence-->
<!--增加persistence依赖-->
<dependencies>
<dependency>
<groupId>com.imooc</groupId>
<artifactId>persistence</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.imooc.firstappdemo.FirstAppDemoApplication</mainClass>
</configuration>
</plugin>
</plugins>
</build>
</project>
六 执行打包命令
mvn -Dmaven.test.skip -U clean package
出现错误
![](https://i-blog.csdnimg.cn/blog_migrate/c6b1b27136e7355d7f1eb22950c897bc.png)
根据错误提示,增加相关文件
![](https://i-blog.csdnimg.cn/blog_migrate/c7c0694e4f327c95a4cddc6703e25f3a.png)
再次执行打包,打包成功
![](https://i-blog.csdnimg.cn/blog_migrate/f91cc6d7a591c952203f116209ac5e86.png)
启动程序,启动成功
![](https://i-blog.csdnimg.cn/blog_migrate/705ba4931a1b071c4a19995c578c7377.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f2cef43e4e9d25e1fd9084763de108c4.png)
七 测试
用postman测试,测试成功
![](https://i-blog.csdnimg.cn/blog_migrate/92fb5a6b5e1da2c82c999179bad97abf.png)
八 参考