这个部署方式,前提需要通过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