脚本如下:

#!/bin/bash

echo ===============================

echo     auto deployment script

echo ===============================

project_home=/home/shawock/projectA

tomcat_home=/home/shawock/tomcat

war_file_name=projectA-0.0.1-SNAPSHOT.war

# update to specified revision

echo do svn update...

cd $project_home

svn update

# package project into war file

echo do mvn package...

mvn clean package -Dmaven.test.skip=true

if [ $? -eq 0 ];then

# kill tomcat process

for i in `jps|grep Bootstrap|awk '{print $1}'`

do

echo kill tomcat process -- $i successfully!

kill -9 $i

done

# bakup and rename old war file

cd $tomcat_home/webapps

if [ -f ROOT.war ];then

echo backup the old war file

currentTime=$(date "+%Y%m%d%H%M%S")

mv ROOT.war $tomcat_home/backup/ROOT_${currentTime}.war

fi

# upload the latest war to webapps

echo upload the latest war to webapps...

rm -rf $tomcat_home/webapps/*

cp $project_home/target/$war_file_name $tomcat_home/webapps/ROOT.war

# restart tomcat

echo restart tomcat...

$tomcat_home/bin/startup.sh

tail -f $tomcat_home/logs/catalina.out

fi

思考:项目的打包依赖于服务器端配置svn和maven,这样其实是非常不合理的。应该向服务器上传已经打好的包?可以使用sftp等命令行。

【扩展】 在shell中判断maven命令是否执行成功

1. 用退出码判断

#!/bin/bash

project_dir=/home/shawock/demo_project

cd $project_dir

# package project into jar file

echo do mvn clean package...

mvn clean package -Dmaven.test.skip=true

if [ $? -eq 0 ];then

echo mvn packaging successfully

else

echo mvn packaging fail

fi

2. 从maven执行的结果中查找关键字

#!/bin/bash

project_dir=/home/shawock/demo_project

cd $project_dir

# package project into jar file

echo do mvn clean package...

mvn clean package -Dmaven.test.skip=true|tee mvnresult

output=`cat mvnresult`

if [[ $output =~ "BUILD SUCCESS" ]];then

echo mvn packaging successfully

else

echo mvn packaging fail

fi

rm -rf $project_dir/mvnresult

java web自动化部署_JavaWeb项目自动化部署脚本相关推荐

  1. java web 网上商城_JavaWeb项目--网上商城 (6-2)

    day 2 1.模块详解 案例1-前台分类信息展示 需求: 访问任意页面的时候,都需要将分类的信息展示出来 技术分析:包含(静态包含和动态包含)  静态包含后台只生成一个class文件,而动态包含生成 ...

  2. java web mysql视图_Javaweb项目-下拉列表显示后台数据库的数据

    下面将演示前端下拉列表显示后台数据库中class表的说有班级的名称 环境: Tomcat-8.5.40 mysql-8.0.13 eclipse-4.9.0 springmvc框架 一.从mysql中 ...

  3. java web部署文档_javaweb项目实施部署文档

    javaweb项目实施部署文档 一 .安装配置jdk Jdk的下载地址: http://www.oracle.com/technetwork/java/javase/downloads/index.h ...

  4. iptables 开放远程_JavaWeb项目的部署以及远程调试

    不点蓝字,我们哪来故事? Linux环境下软件的安装 Linux环境下的程序的安装.更新.卸载和查看. rpm 命令:相当于windows程序的添加/卸载程序,进程程序的安装,查看,卸载. 本地程序安 ...

  5. java web架构配置_javaweb(1) tomcat配置和web程序结构

    一.tomcat配置 为方便在cmd中直接启动tomcat服务器,可以像其他程序(如jdk)一样配置tomcat. 1.CATALINA_HOME = D:\java\apache-tomcat-8. ...

  6. vue项目打包部署linux_Vue项目打包部署到Nginx服务器

    "随着前后端分离项目的流行,vue项目开发部署也成为了前端人员必备技能:本文将带你学习vue项目部署及遇到的各种坑." 关于vue项目部署不得不提的是配置文件vue.config. ...

  7. java web 添加超链接_Javaweb 超链接后显示问题

    java web 项目发送带有超链接文本邮件问题 今天做java web项目的时候遇到了一个很想不通的或者说很奇葩的问题, 小编首先需要设置邮件内容的格式为:html 其次在内容中加上不要太乖,不想做 ...

  8. Java Web前后端分离项目—后端servlet实例

    关与作者更多博客请访问云里云外开源社区 文章目录 一.闲谈 二.json字符串的接受和发送 json的发送 json的接收 三.内网穿透或服务上云服务器 四.跨域 背景(为什么) 如何跨域 五.对接出 ...

  9. Java Web应用程序的反跨站点脚本(XSS)过滤器

    这是为Java Web应用程序编写的一个好简单的反跨站点脚本(XSS)过滤器. 它的主要作用是从请求参数中删除所有可疑字符串,然后将其返回给应用程序. 这是我以前关于该主题的帖子的改进. 您应该将其配 ...

最新文章

  1. c#中接口的使用方法图解_C#图解教程 第十五章 接口
  2. 编写高质量代码改善C#程序的157个建议——建议86:Parallel中的异常处理
  3. jquery-- json字符串没有自动包装为 json对象
  4. Python之pandas:对pandas中dataframe数据中的索引输出、修改、重命名等详细攻略
  5. Python 中关于 round 函数的小坑
  6. 本地修改远端 SAP UI5 框架文件的一个小技巧
  7. 广西大学计算机类开设课程,操作系统教学大纲-广西大学计算机与电子信息学院.DOC...
  8. Spring Data JPA使用
  9. 35岁的测试是测试的天花板吗?
  10. java实现发送QQ邮件
  11. Docker在linux下的安装
  12. 叫板 Android 开发!跨平台应用开发神器 Flutter 又添开源插件!| 技术头条
  13. UVA10405 Longest Common Subsequence【LCS+DP】
  14. Android studio 突然 无法解析符号
  15. [No00002D] “大学生还不如农民工”背后的“身份教育”困境
  16. 车企建设CDP可能会遇到的坑和挑战,从CRM、SCRM到CDP
  17. 李宏毅机器学习Homework1(代码简洁版)
  18. 一定要记住这20种PS技术!来美化你的照片
  19. systemverilog 中的always_comb, always_latch, always_ff
  20. LeViT: aVision Transformer in ConvNet‘s Clothing for Fast in

热门文章

  1. matlab与quartus的联合数据交换(NCO与文件数据的混频处理)
  2. 在linux下安装matlab2013a的经验
  3. FPGA_进阶篇开篇
  4. 【译】一份通俗易懂的React.js基础指南-2018
  5. ORACLE 11G RAC ASM磁盘全部丢失后的恢复
  6. 程序员常犯的五个非技术性错误
  7. Issue 140: Tweet
  8. 运维经理的运维经验总结
  9. LeetCode - Valid Number
  10. backbone.js全栈开发