在Java开发项目时经常要把正在开发的项目发布到测试服务器中去测试,一般的话是要把项目先打成war包,然后把war包发布到服务器中,关闭服务器, 最后重新启动服务器,虽然这过程不是很繁琐,但如果是多个工程都要发布的时候,发布的过程就会比较繁琐,所以福音来了……

通过 编写shell 脚本来完成这些操作,只要执行一个shell脚本,项目就可以自动发布到服务器了,用起来还是比较方便的。

第一步:在linux中安装svn。(这个可以参照另外一篇博客:http://simplelife.blog.51cto.com/9954761/1729931 ),具体到这篇博客,安装svn是为了可是使用svn中的一些命令。

第二步:在linux安装maven。(参照:http://simplelife.blog.51cto.com/9954761/1743977 )

第三步:在linux中的任意一个目录下,最好自己新建一个目录,如ucenter目录

1
2
3
4
5
mkdir /home/softs/ucenter
cd ucenter
svn co   http://svnserver/mypro/trunk   ./    #从指定的svn地址中检出代码到当前目录
  
此时需要输入一些svn的用户名和密码,输入之后确定使用就是了。

执行:svn co http://svnserver/mypro/trunk/ ./

此时svn中的代码就已经检出到服务器中了……

在当前目录下执行:svn up

可以更新svn中最新的代码,返回svn的版本

进入ssm-parent目录中,执行命令(maven的命令):mvn -U clean install

进入simple-ssm中执行相同的操作:

此时simple-ssm中就多了一个目录:target,这个工程的war包就在其中

此时项目war包已经生成了,接下来就可以将这个war复制到tomcat服务器中,然后重启服务器就可以了。

也就是最前面所说的,上述这些更新代码、打包,移动war包到服务器,重启服务器的操作都可以用一个简单的shell脚本来执行。

++++++++++++++++++++++++++++编写发布要执行的shell脚本++++++++++++++++++++++++++++++++

在ucenter目录中(随便哪个目录,以这个目录为例)

新建ssm-parent.sh文件:

1
2
touch ssm-parent.sh
vim ssm-parent.sh

编写:

保存后退出。

给文件赋予权限

1
chmod 755 ssm-parent.sh

执行:

1
./ssm-parent.sh

新建simple-ssm.sh文件:

touch simple-ssm.sh

vim simple-ssm.sh

编写:

保存后退出。

给文件赋予权限

1
chmod 755 simple-ssm.sh

执行:

1
./simple-ssm.sh

这样就将simple-ssm工程发布完成了。

以后每次只要将代码写完之后,提交到svn中,在服务器中就可以先后执行这两个shell脚本(当然还可以有别的工程的shell脚本),就可以轻松的发布项目了,是不是很便捷!

执行:

1
2
./ssm-parent.sh
./simple-ssm.sh

到此项目时时发布就可以实现了。

linux下使用shell脚本自动化部署项目的更多相关文章

  1. shell脚本自动化部署

    由于公司技术部团队较小,没有专门的运维团队,所以运维工作技术部承包了. 一.纯人工部署是这样的: 1. 本地打包:一般 maven clean package 2. 借助xftp上传到服务器对应目录 ...

  2. Linux下添加shell脚本使得nginx日志每天定时切割压缩

    Linux下添加shell脚本使得nginx日志每天定时切割压缩一 简介 对于nginx的日志文件,特别是access日志,如果我们不做任何处理的话,最后这个文件将会变得非常庞大 这时,无论是出现异常 ...

  3. shell脚本自动化部署服务

    shell脚本自动化部署 !/bin/bash #export PATH=$PATH:/export/maven/bin run_flag_dir="/data0/shell/deploy_ ...

  4. linux下实现shell脚本自动连接mongodb数据库并创建索引

    在linux下创建shell脚本

  5. 2019.11.13课堂实验之用Linux下的shell脚本完成两文本交替输出

    有两个文本如下,实际中并不知道两文本各有多少行: 文本1.txt aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ccccccccccccccccccccccccccc ...

  6. windows下建立文件的换行符^M导致linux下的shell脚本执行错误的解决方式

    常常在windows下编辑的文件远程传送到linux下的时候每行末尾都会出现^M.这将导致shell脚本执行错误,主要是由于dos下的编辑器和linux下的编辑器对文件末行的回车符处理不一致导致. 主 ...

  7. linux下的shell脚本(基本)

    shell有些命令和格式不用老是容易忘,学而时习之,不亦说乎~ 先说明以下内容来自: http://c.biancheng.net/cpp/shell/ ,C语言中文网,请大家支持原作,点击链接查看. ...

  8. Linux 下执行Shell 脚本的方式

    Shell 脚本的执行方式通常有如下三种: (1)bash script-name 或者 sh script-name:(2)path/script-name或者./script-name:(3)so ...

  9. linux下的shell脚本的使用

    什么是shell? Shell是一个命令解释器,它在操作系统的最外层,负责直接与用户进行对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出到屏幕反馈给用户.这种对话方式可是交互 ...

随机推荐

  1. HTML一(简介)

    什么是 HTML? HTML 是用来描述网页的一种语言. HTML 指的是超文本标记语言 (Hyper Text Markup Language) HTML 不是一种编程语言,而是一种标记语言 (ma ...

  2. ERROR 1820 (HY000): You must SET PASSWORD before executing this statement

    Linux rpm方式安装完MySQL之后 mysql>SET PASSWORD = PASSWORD('newpasswd');

  3. linux远程

    apt-get install rdesktop $rdesktop -u administrator -p ****** -a 16 192.168.1.1 //都直接登陆了,

  4. 【Linux】echo命令

    用途 echo是用于终端打印的基本命令 说明 只需要使用带双引号的文本,结合echo命令就可以将文本打印在终端. [root@localhost test]# echo "Hello Wor ...

  5. webservice系统学习笔记3-分析wsdl文件的组成

    详细分析前面章节的服务的wsdl文件 1.http://localhost:8888/ws01?wsdl 2.http://localhost:8888/ws01?xsd=1 在接口服务中添加复杂类型 ...

  6. MySQL中分组取第一条, 以及删除多余的重复记录

    检查重复记录 -- 检查重复code1 select count(identity) num, identity from event_log where code='code1' order by ...

  7. Java IO:BIO和NIO差别及各自应用场景

    转载请注明出处:jiq•钦's technical Blog - 季义钦 引言 BIO和NIO是两种不同的网络通信模型,现现在NIO已经大量应用在Jetty.ZooKeeper.Netty等开源框架中 ...

  8. javascript书籍推荐

    本文转自:http://blog.csdn.net/yangnihaozan/article/details/48294545 在当下,极多的程序员是通过自学来完成入门以及提升的.对于JavaScri ...

  9. HDUOJ-Counting Triangles

    Counting Triangles Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...

  10. jQuery DataTables的简单实现

    DataTables是一个jQuery的表格插件.这是一个高度灵活的工具,依据的基础逐步增强,这将增加先进的互动控制,支持任何HTML表格. 主要特点: 1.自动分页处理 2.即时表格数据过滤 3.数 ...