这个部署方式,前提需要通过WinSCP工具将本地Maven项目打成zip包放到Linux对应的用户目录下,然后执行脚本便可以完成一键部署。

大家看到下面的脚本,可以发现一个显著的特点,部署脚本内容基本都是Linux命令拼接而来的。

所以这里还得强调一下,如果想把shell学好,Linux是基础。

这就好比Java,如果你想更深层次理解MyBatis或者Spring源码,对于Java基本工要求还是非常严格的,只有当Java基础扎实,所谓的框架对于你来说,其实也没什么。

deploy.sh

#!/bin/bash

demo_dir=/home/test/tomcat8/webapps
web_dir=/home/test/tomcat8
cd $demo_dir rm -rf test-web.war
rm -rf test-web echo "成功删除webapps下的项目,为下一次部署做准备" cd .. ./bin/shutdown.sh echo "关闭tomcat8服务器" cd /home/test/ if [ -f test-web*.zip ];then
unzip test-web*.zip
echo "成功解压"
fi cd /home/test/test-web mvn clean package echo "打包" cp -r /home/test/test-web/target/lms.war /home/test/tomcat8/webapps/
cp -r /home/test/test-web/target/lms /home/test/tomcat8/webapps/ echo "成功复制到$demo_dir 目录下" cd $web_dir ./bin/startup.sh && tail -f logs/catalina.out

这里的话,分享的脚本是经过实际测试认证的,目前只经过ubuntu16.04验证。

不过这里有比较多的缺点和不足,就是不够自动化,而且一旦执行失败,不仔细检查的话,会很难发现。

这里的分享,只供初学者或者实际开发人员觉得通过常规的maven部署难受的话,可以借鉴这个,以减少部署时间成本。

常规部署可以参考如下内容:

1.zip包方式

unzip test-web.zip #解压zip包

cd test #进入该目录

mvn clean package #打包命令

cd target #进入target目录 打包命令成功生成的war文件会在这个目录下

cp test-web.war /home/test/tomcat8/webapps #将war文件复制到这个目录下

最后重启服务器,即可完成部署

2.使用git版本控制开发

git clone url #克隆远程仓库

cd test-web #进入远程仓库

mvn clean package #到有pom.xml的文件夹执行该命令

cd target #找到war包

cp test-web.war /home/test/tomcat8/webapps #将war文件复制到这个目录下

最后重启服务器,即可完成部署

这是我之前常用的两种方式,当然,现在都流行一个叫持续集成或自动化部署的,我这个也比较古板了,还需要手动执行。

现在有一种工具比较火,叫Jekins,它是一种持续集成+自动化部署的软件。

安装教程,可以参考我的博文:Ubuntu16.04环境安装jenkins

非常简单的部署脚本(JavaWeb项目)和部署项目教程的更多相关文章

  1. kubernetesV1.13.1一键部署脚本(k8s自动部署脚本)

    部署k8sv1.13.1只需要下面几步就OK了: git clone https://github.com/luckman666/deploy_Kubernetes-v1.13.1.git cd de ...

  2. [原]jenkins(六)---jenkins远程部署脚本

    /** * lihaibo * 文章内容都是根据自己工作情况实践得出. * 版权声明:本博客欢迎转发,但请保留原作者信息! http://www.cnblogs.com/horizonli/p/533 ...

  3. JavaWeb项目的部署以及远程调试

    Linux环境下软件的安装 Linux环境下的程序的安装.更新.卸载和查看. rpm 命令:相当于windows程序的添加/卸载程序,进程程序的安装,查看,卸载. 本地程序安装:rpm -ivh 程序 ...

  4. Java web项目在linux环境下自动编译和部署脚本

    自动编译脚本 build.sh, 放置在项目根目录下. #!/bin/bash # check args # init path CURRPATH=`pwd` LIBDIR="$CURRPA ...

  5. Linux中java项目环境部署,简单记录一下

    这里只是简单的记录一下linux环境下面如何快速的搭配好环境,使你的项目能在linux环境上面运行. 很多时候,我们都是用windows环境进行配置调试的,而真正很多服务器都是在linux服务器上面的 ...

  6. Linux CentOS6.8 项目部署脚本实现

    面向刚接触linux环境的新手,老鸟勿拍~ 部署环境及配置: tomcat9,maven3.3.9,git 1.12.0 ##定义一些变量,将需要用到的 source目录,项目目录,名称等定义变量,方 ...

  7. Tomcat项目自动部署脚本

    一般情况下使用的Linux环境都是加固的,root路径只有超级管理员权限才能进入.我们新建一个自己的用户,在/home下会有一个用户目录,传输war包都放在这个目录下,此时不动webapps文件下的内 ...

  8. Idea创建简单Java Web项目并部署Servlet

    1.打开Idea,创建JAVA Web项目 在WEB-INF目录下创建classes和lib文件夹 配置编译输出路径为刚才新建的classes文件夹 配置依赖jar包加载路径 添加tomcat ser ...

  9. 做了一个简易的git 代码自动部署脚本

    做了一个简易的git 代码自动部署脚本 http://my.oschina.net/caomenglong/blog/472665 发表于2个月前(2015-06-30 21:08)   阅读(200 ...

随机推荐

  1. 后台管理UI+功能

    kingRoad功能强大,丰富各种功能和插件,自定义开发功能组件及样式,使用webpack方式集成和纯html两种,UI(自定义开发和AdminLTE的集成优化),弹窗功能使用(Layer弹窗,并与框 ...

  2. Ajax 的几种方法应用

    一,js实现ajax异步请求,简单例子 try.jsp <%@ page language="java" import="java.util.*" pag ...

  3. 自动化构建工具--gulp的初识和使用

    gulp 首先:什么是gulp? gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成:使用她,我 ...

  4. HDU4336 Card Collector(期望 状压 MinMax容斥)

    题意 题目链接 \(N\)个物品,每次得到第\(i\)个物品的概率为\(p_i\),而且有可能什么也得不到,问期望多少次能收集到全部\(N\)个物品 Sol 最直观的做法是直接状压,设\(f[sta] ...

  5. opencv3.2.0图像离散傅里叶变换

    源码: ##名称:离散傅里叶变换 ##平台:QT5.7.1+opencv3.2.0 ##日期:2017年12月13. /**** 新建QT控制台程序****/ #include <QCoreAp ...

  6. Android屏幕适配工具

    这里需要用到一个jar包,下载拿到这个jar包后直接双击就可以生成市场大部分主流屏幕尺寸了.然后只要把生成好的xml尺寸文件拷贝到相应的value文件中即可.很方便,以后再也不用担心适配繁琐的问题了. ...

  7. ORACLE 导出表结构及备注

    https://blog.csdn.net/u013303551/article/details/52354230 SELECT t.table_name,       t.colUMN_NAME,  ...

  8. Android组件系列----Activity组件详解

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...

  9. mac 手动卸载软件位置

    系统偏爱设置 /Users/xxxxx/Library/Preferences/ xxxx 支持文件 /Users/xxxxx/Library/Application Support/xxx文件夹 数 ...

  10. [翻译] AFDropdownNotification

    AFDropdownNotification Dropdown notification view for iOS. 下拉通知的view,用于iOS. Installation - 安装 If you ...