Spring Boot应用 打包与部署指南

小说:哪里有卖大绒球种子的?作者:伯密更新时间:2019-04-26字数:31699

一、前言 Spring Boot的打包与部署有何特点? Java Web应用在Spring Boot之前,通常是打包成war(Web application ARchive)包,结合Tomcat来完成部署。 对于Spring Boot,Spring官方的建议是将Spring Boot应用打包成一个fat jar(Java ARchive),通过java命令来启动运行。这个fat jar会把Tomcat内置进来,所以部署时也不需要单独配置Tomcat。 Spring官方的打包说明: https://docs.spring.io/spring-boot/docs/1.5.9.RELEASE/reference/htmlsingle/#getting-started-first-application-executable-jar 本篇环境信息 开发环境: 用途 工具&版本 操作系统 Windows 10 开发工具 IntelliJ IDEA 2017 打包工具 Maven 3.X JDK 1.8.x 传输工具 FlashFxp 生产环境: 用途 工具&版本 操作系统 CentOS 7 JDK 1.8.x 传输工具 Vsftp CentOS 7快速上手教程:https://ken.io/serie/centos7-quickstart 二、打包 打包工具的话如前面提到的,我们使用的是Maven 首先需要在pom.xml文件build节点增加如下配置: springboot-courseorg.springframework.bootspring-boot-maven-plugin 另外,需要确认pom.xml文件的package节点配置: jar 本篇ken.io会介绍两种打包方式,一个是Maven命令打包。一个是IDEA+Maven插件打包。 1、 Maven命令打包 准备工作 配置Java、Maven环境变量 参考:http://wiki.jikexueyuan.com/project/maven/environment-setup.html cmd:进入项目目录 本次项目目录是:D:ProjectsGitHubspringboot-coursepackage-maven d: & cd D:ProjectsGitHubspringboot-coursepackage-maven 清理package #清理已存在的编译结果 mvn clean #清理成功后输出信息示例 [INFO] ----------------------------------------------------------- [INFO] BUILD SUCCESS [INFO] ----------------------------------------------------------- 打包 #打包 mvn package #清理成功后输出信息示例 [INFO] ----------------------------------------------------------- [INFO] BUILD SUCCESS [INFO] ----------------------------------------------------------- #清理成功后会在项目根目录生成target文件夹 #查看是否生成target文件夹 ls #查看是否生了jar文件 ls target #根据pom.xml文件的配置,生成的jar文件名是:springboot-course.jar 2、IDEA + Maven插件打包 通过View->Tool Windows->Maven projects 呼出Maven工具栏 或者通过IDEA右侧工具栏呼出Maven工具栏 Maven工具栏 图形化操作就很简单了。两个步骤: clean package 成功之后也会在IDEA 控制台显示以下输出: [INFO] -------------------------------------------------------------------- [INFO] BUILD SUCCESS [INFO] -------------------------------------------------------------------- [INFO] Total time: 7.839 s [INFO] Finished at: 2017-12-09T13:36:40+08:00 [INFO] Final Memory: 21M/218M [INFO] -------------------------------------------------------------------- 生成的jar包路径:项目根目录 argetspringboot-course.jar 3、本地运行测试 通过java命令运行jar包 #进入jar包所在目录 d: & cd D:ProjectsGitHubspringboot-coursepackage-maven arget #执行 java -jar springboot-course.jar #运行成功后会输出如下信息(部分信息略去) [main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup [main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http) [main] i.k.springboot.course.CourseApplication : Started CourseApplication in 5.569 seconds (JVM running for 6.363) 通过浏览器访问:localhost:8080,验证是否正常 端口号 在/src/main/resources下新建配置文件application.yml 文件内容: server: port: 8081 配置完成之后,重新打包即可 参考:https://ken.io/note/springboot-course-basic-helloworld 三、部署 1、 准备工作 JDK 1.8部署 https://ken.io/note/centos-java-setup FTP服务端部署 https://ken.io/note/centos-quickstart-ftpserver 通过FTP将jar包上传到CentOS的 /webroot/helloweb 目录 创建日志目录: #创建应用目录&日志目录 sudo mkdir /webroot/helloweb sudo mkdir /webroot/helloweb/logs #修改文件夹权限 sudo chmod 777 /webroot/helloweb sudo chmod 777 /webroot/helloweb/logs 开放端口 #添加可访问端口 sudo firewall-cmd --add-port=8081/tcp --permanent #重新加载防火墙策略 sudo firewall-cmd --reload 2、启动&停止脚本 创建启动脚本 #创建启动脚本start.sh sudo vi /webroot/helloweb/start.sh 脚本内容: #!/bin/sh #指定JDK目录&AppName export JAVA_HOME=/usr/java/jdk1.8.0_151 APP_NAME=springboot-course.jar echo $JAVA_HOME echo $APP_NAME #nohup命令后台启动jar包并写入日志 nohup java -jar $APP_NAME >>logs/start.log 2>>logs/startError.log & #sleep等待15秒后,判断包含AppName的线程是否存在 sleep 15 if test $(pgrep -f $APP_NAME|wc -l) -eq 0 then echo "Start Failed" else echo "Start Successed" fi 创建停止脚本 #创建停止脚本文件 sudo vi /webroot/helloweb/stop.sh 脚本内容: #!/bin/sh #指定AppName APP_NAME=springboot-course.jar #找到包含AppName的进程 PROCESS=`ps -ef|grep $APP_NAME|grep -v grep |awk "{ print $2}"` #循环停用进程直到成功 while : do kill -9 $PROCESS > /dev/null 2>&1 if [ $? -ne 0 ];then break else continue fi done echo "Stop Successed" 启动/停止站点 #启动 sh /webroot/helloweb/start.sh #停止 sh /webroot/helloweb/stop.sh 3、CentOS 7 开机自动Spring Boot应用 将站点启动脚本标记为可执行文件 chmod +x /webroot/helloweb/start.sh 将/etc/rc.d/rc.local标记为可执行文件 CentOS 7中,默认/etc/rc.d/rc.local文件加载时不能执行可执行文件 chmod +x /etc/rc.d/rc.local 将启动文件添加到/etc/rc.d/rc.local文件中 #修改文件 vi /etc/rc.d/rc.local #增加以下内容 /webroot/helloweb/start.sh 本篇文章所用到的源代码:https://github.com/ken-io/springboot-course/tree/master/package-maven

当前文章:http://leetaemin.cn/list_75512.html

发布时间:2019-04-26 05:37:54

新疆可以种植金丝柳吗? 2014年江苏沭阳红叶李最新价格表 樱花小苗什么价格? 碧桃是常绿的吗? 藤本月季是月季吗? 黄刺玫价钱贵吗? 紫藤根部无土能活移植吗? 山西朔州_运城大叶黄杨价格高不高_夏县大叶黄杨苗圃 爬山虎的各种攀附的效果图片 高羊茅和早熟禾有什么区别?

56811 43731 30672 80204 47877 44318 38115 93663 58596 66150 27423 84313 82244 69657 96370 45988 82341 27860 31645 74435 51428 12439 11608

我要说两句: (0人参与)

发布