打包部署说白了就两步:打包、部署。废话不多说,直接拿spring boot自动生成的项目骨架,再添加一个文件用来演示:

package com.crocodile.springboot;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController; @RestController
public class PDFController {
@RequestMapping(value = "hello", method = RequestMethod.GET)
public String helloWorld() {
return "hello, world.";
}
}

  还要在配置文件application.properties里加两个配置项:

#修改tomcat的默认的端口号,将8080改为8888
server.port=8888 #切换配置文件
spring.profiles.active=test

  最后打包,直接跑Maven生成jar包就好了。

  打完包就要部署了。因为spring boot有内置tomcat容器,这点比较方便,省去了tomcat的部署。我们直接把jar包扔到linux上。这里你可以通过FTP工具,也可以使用下面这个命令行的小工具,先安装:

 yum -y install lrzsz
Loaded plugins: fastestmirror
Determining fastest mirrors
base | 3.6 kB ::
epel | 4.7 kB ::
extras | 3.4 kB ::
updates | 3.4 kB ::
(/): epel/x86_64/updateinfo | 1.0 MB ::
(/): epel/x86_64/primary_db | 6.6 MB ::
Package lrzsz-0.12.-.el7.x86_64 already installed and latest version
Nothing to do

  再上传:

rz -y
rz waiting to receive.
zmodem trl+C ȡ

  它会弹出一个界面让你选择具体文件的,你选择maven打好的jar后点击发送就ok了。

  接着就是执行jar包,这里通过一个脚本来执行:

#!/bin/sh
JAR_NAME=springboot-0.0.-SNAPSHOT.jar tpid=`ps -ef|grep $JAR_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stop Process...'
fi
sleep
tpid=`ps -ef|grep $JAR_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Process!'
kill - $tpid
else
echo 'Stop Success!'
fi tpid=`ps -ef|grep $JAR_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'App is running.'
else
echo 'App is NOT running.'
fi rm -f tpid
nohup java -jar ./$JAR_NAME --spring.profiles.active=test >/dev/null 2>&1 &
echo $! > tpid
echo 'Start Success!'

  这个脚本的作用就是通过jar命令来执行jar包,前面是先通过grep命令看是否已有jar包在跑,有的话就杀掉再拉起,没有就直接跑。注意上面的JAR_NAME需要根据你的jar包名称赋值。另外最重要的一行就是通过nohup命令起一个后台线程跑该jar,并把生成的nohup.out指向一个黑洞当垃圾扔掉。对了,保存好脚本后还得给这个脚本加权限:

chmod +x start.sh

  打完收工,你可以直接用它跑了:

 ./start.sh
Stop Process...
Kill Process!
App is NOT running.
Start Success!

  上面是我已经把jar起好了,再次执行start.sh后,它先停掉进程后又拉了起来。可以看下日志

tail - nohup.out
-- ::54.447 INFO --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.]
-- ::54.462 INFO --- [ main] o.a.catalina.core.AprLifecycleListener : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib]
-- ::54.553 INFO --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
-- ::54.553 INFO --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in ms
-- ::54.823 INFO --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
-- ::55.038 INFO --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): (http) with context path ''
-- ::55.130 INFO --- [ main] c.c.springboot.SpringbootApplication : Started SpringbootApplication in 2.812 seconds (JVM running for 3.304)
-- ::08.733 INFO --- [nio--exec-] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
-- ::08.733 INFO --- [nio--exec-] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
-- ::08.739 INFO --- [nio--exec-] o.s.web.servlet.DispatcherServlet : Completed initialization in ms . ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.3.RELEASE) -- ::40.163 INFO --- [ main] c.c.springboot.SpringbootApplication : Starting SpringbootApplication v0.0.1-SNAPSHOT on iZbp11ahvmlfioymoo7u3bZ with PID (/home/wlf/springboot-0.0.-SNAPSHOT.jar started by root in /home/wlf)
-- ::40.166 INFO --- [ main] c.c.springboot.SpringbootApplication : The following profiles are active: test
-- ::41.534 INFO --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): (http)
-- ::41.572 INFO --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
-- ::41.572 INFO --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.]
-- ::41.595 INFO --- [ main] o.a.catalina.core.AprLifecycleListener : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib]
-- ::41.695 INFO --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
-- ::41.695 INFO --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in ms
-- ::41.898 INFO --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
-- ::42.164 INFO --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): (http) with context path ''
-- ::42.169 INFO --- [ main] c.c.springboot.SpringbootApplication : Started SpringbootApplication in 2.637 seconds (JVM running for 3.064)

  浏览器敲下linux外网ip和端口即可访问hello:

spring boot打包部署到Linux环境的更多相关文章

  1. Spring Boot打包部署

    date: 2018-11-19 15:30:11 updated: 2018-11-21 08:28:37 Spring Boot打包部署 第一种方式 打包成jar包部署在服务器上 1.1 添加插件 ...

  2. Spring Boot 如何部署到 Linux 中的服务

    打包完成后的 Spring Boot 程序如何部署到 Linux 上的服务? 你可以参考官方的有关部署 Spring Boot 为 Linux 服务的文档. 文档链接如下: https://docs. ...

  3. docker + spring boot 打包 部署。

    docker 安装 什么的 就不一一介绍了 不会安装百度一找一堆. 我这直接上代码. 首先你要有个spring boot项目. 然后打包.打包很简单 我打包的是 jar文件.直接在pom.xml文件里 ...

  4. Spring Boot 打包部署

    一.打包成jar并部署 1.工程--右键选择运行配置: 在Goals中输入: org.apache.maven.plugins:maven-jar-plugin:.RELEASE:repackage ...

  5. spring boot打包以及centos下部署

    spring boot打包以及部署 一.打包 springboot的打包方式有很多种.有打成war的,有打成jar的,也有直接提交到github,通过jekins进行打包部署的.这里主要介绍如何打成j ...

  6. spring boot 打包war后 部署到外部 tomcat 的具体正确操作【包括修改端口 与 去除请求路径的工程名】

    1.前言 工程做好了,总不能放在idea运行吧?不然怎么把项目放到云服务器呢?[这一篇随笔不讲解发布的云服务器的操作,在其他随笔有详细记载.] 解决的方案是把springboot 工程 打包成war文 ...

  7. spring boot (2):spring boot 打包tomcat、tomcat 部署多个项目、服务器部署项目SSL 设置(阿里云)

    一.spring boot 内置tomcat配置https: 关于自签名证书可以看下上一篇 spring boot1 更详细的可以看转载 https://www.jianshu.com/p/8d4ab ...

  8. Spring Boot打包war jar 部署tomcat

    概述 1.Spring Boot聚合工程打包war部署Tomcat 2.Spring Boot打包Jar,通过Java -jar直接运行. 3.提供完整pom.xml测试项目 至github 4.项目 ...

  9. 从零开始通过idea插件将一个spring boot项目部署到docker容器里运行

    实操:将一个spring boot项目部署到docker容器里运行 实验需要的环境: 腾讯云+Ubuntu 16.04 x64+idea+插件docker integration+daocloud 第 ...

随机推荐

  1. HCNP学习笔记之史上最全华为路由器交换机配置命令大合集

    先来一张思科和华为命令的对照表: 史上最全华为路由器交换机配置命令大合集,熟练掌握下面的华为路由器交换机配置知识点,你只需花几分钟的时间就能明白华为路由器交换机配置.交换机的配置命令等等. 华为路由器 ...

  2. WinterCamp2017 游记

    Winter is coming! Day0 Day0前一天打了一轮CF,做完了ABCD,Div2 Rank59.然后就去开开心心的睡觉,准备第二天的行程. 快到一点的时候躺在了床上,睡不着,翻来覆去 ...

  3. [优化]深度学习中的 Normalization 模型

    来源:https://www.chainnews.com/articles/504060702149.htm 机器之心专栏 作者:张俊林 Batch Normalization (简称 BN)自从提出 ...

  4. Python学习札记(二十四) 函数式编程5 返回函数

    参考:返回函数 NOTE 1.高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回. eg.求和函数 #!/usr/bin/env python3 def calsums(*args): a ...

  5. 支线任务2-Basic Calculator

    问题描述: 题目要求我们实现一个简单的加减计算器,计算一个表达式的值,表达式除了数字之外还可能会含有括号,加减符号以及空格. 思路: 其实看到这个题自然就会想到利用后缀式求表达式值的算法作业题,况且这 ...

  6. 基于spring boot admin 做监控的一些问题记录

    问题一 各个健康节点权限问题 解决方式 加入权限模块 <dependency> <groupId>org.springframework.boot</groupId> ...

  7. python 字符串的反转

    def string_reverse(str1): rstr1 = '' index = len(str1) : rstr1 += str1[ index - ] index = index - re ...

  8. 用训练好的caffemodel来进行分类

    caffe程序自带有一张小猫图片,存放路径为caffe根目录下的 examples/images/cat.jpg, 如果我们想用一个训练好的caffemodel来对这张图片进行分类,那该怎么办呢? 如 ...

  9. spark + cassandra +postgres +codis 大数据方案

    1.环境: 1.1.cassandra 集群: 用于日志数据存储 1.2.spark集群: 用户后期的实时计算及批处理 1.3.codis 集群: 用于缓存一些基本数据如IP归属地,IP经纬度等,当日 ...

  10. 关闭pm2

    先查找ID pm2 status 然后 pm2 stop id pm2 delete id