当前位置:   article > 正文

SpringBoot - Maven方式打包_springboot maven 打包

springboot maven 打包

SpringBoot 为当前最流行的JAVA框架 , 内嵌了 Tomcat 服务器 , 我们不用再像以前 Spring 那样打包成 war , 然后将 war 扔到 tomcat 中运行 。 我们现在可以直接将 SpringBoot 项目打包为一个内置 tomcat 的可运行 jar , 通过 java -jar xxx.jar 直接运行 (方便易用) 。

打包 SpringBoot 的方式有很多

  1. 使用 Maven打包 jar (主流)
  2. 使用各种开发工具打包Jar . 如 : idea , eclipse 等等 。

这里我们使用主流的Maven方式

1、在pom.xml中添加SpringBoot Maven插件 :
<!-- <build > 主要用于编译设置 -->
<build>
	<!-- 定义打包成jar的名字 -->
	<!-- 这里如果不定义 , 打包成的jar名字格式为 : <artifactId> + <version> -->
	<finalName>thymeleaf</finalName>
	<plugins>
		<!--SpringBoot maven插件-->
		<!-- 可以将应用打成一个可执行的jar包 -->
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
			<!-- 设置启动入口 -->
			<!-- manClass即使不配置 , SprinBoot也在打包的时候也清楚入口是哪个 , 其实不用配置 -->
			<configuration>
				<mainClass>com.bella.ThymeleafApplication</mainClass>
			</configuration>
		</plugin>
	</plugins>
</build>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
2、进入项目目录
  • 通过开发工具进入项目 (如 : idea Terminal)
  • 使用 Dos / Shell 进入项目目录

IDEA 方式进入项目目录

Dos 方式进入项目目录

3、执行打包命令
mvn clean package -Dmaven.test.skip=true
  • 1

Maven方式打包SpringBoot可运行Jar
打包成功

Maven 打包成功后 , 可以通过控制台日志查看 Jar 的位置 . ( 如上图 )

  • Building jar : jar的绝对路径
4、运行jar
  1. 打开Dos控制台 (cmd)
  2. 进入 jar 目录 (cd jar绝对路径)
  3. 运行jar (java -jar xxx.jar)

运行jar成功

异常解决

1、 打包成功,运行jar报错 : 没有注清单属性

出现这种情况的原因 :
你的pom.xml 没有引入 SpringBoot Maven插件 . (第一步 在pom.xml中添加SpringBoot Maven插件 )

注意 : 即使你没有引入 SpringBoot Maven 插件也可以构建成功。是因为 maven 本身可以构建成功。但是Maven并不知道你的项目入口在哪里。这就是为什么要引入 SpringBoot maven 插件的原因。

2、打包失败

打包失败

这个错误的意思 :
maven 打包jar的时候是要覆盖之前的jar的。但是maven发现之前的jar正在被使用 , 无法进行删除覆盖操作。
解决办法 :
这种情况一般是因为此 jar 被打开 或者 被 启动中。 我们只要关闭了使用他的程序即可。 比如 : 关闭启动他的 DOS 窗口。 关闭打开他的压缩工具等等。

3、访问Action跳转View找不到

我这里使用的是 SpringBoot + thymeleaf . 当访问某个Action地址服务器进行视图跳转的时候报错 : 找不到该页面 .
比如 : 我访问 http://127.0.0.1:1118/index

访问报错
找不到视图

导致这个错误的原因 :
SpringMVC 返回视图的时候 , 页面目录前面多加了一个 “/” 如 : return “/index”;

去掉目录前的 /

像上面返回视图时多加了一个 “/”
你在用idea直接启动 SpringBoot 项目访问页面的时候没有问题
打包成 jar 访问就找不到页面

具体为什么 ? 没有细致研究。 反正去掉 “/” 就可以了。 也不影响idea的开发。

知识扩展

  • SpringBoot 启动命令大全
  • SpringBoot Maven 打包命令大全

项目源码

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/364549
推荐阅读
相关标签
  

闽ICP备14008679号