前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBoot项目打包部署

SpringBoot项目打包部署

作者头像
青衫染红尘
发布2021-01-19 11:30:20
4K0
发布2021-01-19 11:30:20
举报
文章被收录于专栏:Surpass' BlogSurpass' Blog

前言

博主最近一直在做自己的毕设系统,这个说了好多次了哦。

到了后期完善阶段,恰巧自己在阿里云领取了半年的服务器,配置还算不错。那么有想法把自己的系统上传到服务器上去。

工具

  • CentOS7
  • Xshell
  • Xftp

SpringBoot打包方式

SpringBoot打包方式有很多种。

  • war包
  • jar包
  • 提交github,通t过jekins打包部署

注:不推荐SpringBoot项目打war包,因为SpringBoot适合前后端分离,适合打jar包。

打包前进行的操作

application.properties

相关的工具,类似于数据库,Redis缓存等都需要更换数据源。这里博主贴一下自己的配置文件。

一般情况下会在要部署的服务器上安装相应的环境并测试连接成功。

maven配置文件

  1. 打包的版本只能打1.4.2.RELEASE版本
  2. 没有启动类路径打包后启动报错“找不到主类”

Application.java

在启动类加上extends SpringBootServletInitializer并重写configure方法。

代码语言:javascript
复制
@SpringBootApplication
public class GdApplication extends SpringBootServletInitializer {

	public static void main(String[] args) {
		SpringApplication.run(GdApplication.class, args);
	}

	@Override//为了打包springboot项目
	protected SpringApplicationBuilder configure(
			SpringApplicationBuilder builder) {
		return builder.sources(this.getClass());
	}
}

开始打包

jar

  1. 按照顺序运行运行mvn clean再mvn install,这里使用IDEA侧边栏maven工具。

  1. 最后成功后只需在项目下的target下找自己的包啦。

  1. 用XFtp工具将jar包上传至服务器。
  2. 使用Java命令java -jar smallsystem-0.0.1-SNAPSHOT.jar运行项目。

  1. 然后去安全组去开放系统需要的端口号。

出现的问题

我们根据IP地址和端口向往常一样访问,发现报404错误。仔细检查打的jar包里面没有包含JSP文件(SpringBoot对JSP打包一般会忽略,建议替换成模板引擎)。还需要在<plugins>的同级目录添加配置。

代码语言:javascript
复制
<resources>
	<resource>
		<directory>${basedir}/src/main/webapp</directory>
		<targetPath>META-INF/resources</targetPath>
		<includes>
			<include>**/**</include>
		</includes>
	</resource>
	<resource>
		<directory>${basedir}/src/main/resources</directory>
		<includes>
			<include>**/**</include>
		</includes>
	</resource>
	<resource>
		<directory>${basedir}/src/main/java</directory>
			<includes>
				<include>**/*.xml</include>
			</includes>
		<filtering>false</filtering>
	</resource>
</resources>

这个配置是为了让打包的时候把webapp文件一起打包进去。

重新打包就OK了。

如果出现404的问题,根本原因一定是访问控制层能够进入方法,也能打印日志,是页面没找到。 这里我大概看了一下,大概的原因如下: 1.在SpringBoot项目中,resource并不是根资源目录 2.就是跳转的地址有问题 也就是说controller中的跳转地址不对! 注意注解的是否正确使用。这就是SpringBoot使用JSP的弊端。

war

pom文件

  1. 加入配置

加个<packaging>war</packaging>,就OK啦!就这么点区别。

  1. war包的打包操作和jar包是一样的参考上边咯。
  2. 后面的流程操作一致,启动命令一致。

  1. 启动成功。浏览器访问

后台打印日志

完成

这样SpringBoot项目就部署成功了。

另述

在进行系统操作的时候看Xshell一直有日志打印,这里让他后台运行,日志打印在文件中。

使用命令touch start.sh,创建文件。

使用命令vim start.sh,编辑文件。

代码语言:javascript
复制
nohup java -Dfile.encoding=UTF-8 -jar patentmanager-web-1.0.0-SNAPSHOT.jar --server.port=8888 &   #server.port为自己项目的端口号

保存并退出,修改文件权限chmod 777 start.sh

运行./start.sh,会生成一个日志文件nohup.out

可以使用cat,tail,less等命令查看日志文件。

如果想要中止系统运行就要根据端口号去杀掉进程了。

好啦,这篇结束啦

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-04-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 工具
  • SpringBoot打包方式
  • 打包前进行的操作
    • application.properties
      • maven配置文件
        • Application.java
        • 开始打包
          • jar
            • 出现的问题
          • war
            • pom文件
        • 完成
        • 另述
        相关产品与服务
        云数据库 Redis
        腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档