发表于: 2017-05-24 23:15:16

1 1352


今天完成的事情:

1、编写简单的shell脚本,以实现自动化部署。

通常的部署流程:先把项目打成 war 包,关闭服务器,然后把war包放到服务器目录下,启动服务器。

虽然这过程并不繁琐,但若是多个工程都要发布的时候,发布的过程就会比较繁琐。

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

第一步:在linux中安装git(或者svn)。

第二步:在linux中安装maven。

第三步:建立一个文件夹用于存放从git拉取到的最新代码。

mkdir /usr/local/myGitTestFolder/xqvfyr

此时最新的代码就被拉取到/usr/local/myGitTestFolder/xqvfyr文件夹下了。

由于这个目录是项目的根目录,因此能在此执行maven的命令打成war包:mvn -U clean install -Dmaven.test.skip=true

此时/xqvfyr中就多了一个目录:target,这个工程的war包就在其中。

接下来就可以将这个war复制到jetty的webapps目录下,然后重启服务器就可以了。

现在,上述这些拉取最新代码、打包,移动war包到服务器目录,重启服务器的操作都可以用一个简单的shell脚本来执行。

在xqvfyr目录下,新建一个autoDeploy.sh文件

1
2
touch autoDeploy.sh
vim autoDeploy.sh

编写:

给文件赋予权限:

1

chmod 755 autoDeploy.sh

执行:

期间war被拷贝到了服务器webapps目录下:

遇到的问题:

1、在shell脚本中的git命令的上下行必须也是git命令?不然执行时会报错。

如何解决的:没有深究这个问题。

把执行git命令的部分单独放到另一个脚本中了。

2、shell脚本中的切换目录问题。

如何解决的:需要用source或者.执行,这样会在当前shell环境中执行。

如果直接执行,会开启一个子shell,你在子shell中进入了该目录,脚本执行完后会退出子shell回到父shell环境,这样当前目录又会还原成父shell的当前目录的,在后面加一句pwd如:

#! /bin/sh

cd /projects 

pwd

就可以很清楚的看到,是有进入到该目录,然后脚本执行完成后再执行pwd就会发现不是了。

3、linux安装git的前提要安装很多库。

http://blog.csdn.net/u013720726/article/details/60775580

https://blog.slogra.com/post-344.html

收获:

再重温了一次安装配置git的过程。

http://www.cnblogs.com/zhcncn/p/4030078.html

明天的计划:



返回列表 返回列表
评论

    分享到