开发完成之后,需要将本地的环境进行打包,并部署到测试环境,一般需要经过这几个步骤, 1.mvn install 2.执行make-rpm.sh脚本 3.执行scp将本地的rpm包拷贝到测试服务器中。每次的敲代码也比较人肉,所以写了一个shell脚本,将这几部串起来。因为考虑到有些时候,我们其中一步失败,而不想重头在来,所以脚本我支持通过1,2,3的数字进行选择,具体看代码吧。
#!/bin/bash #install command=$1 username=$2 host=$3 function info(){ echo 'use ./deploy.sh command [username] [host]' echo 'command:' echo '0 -- exec all action,contains:install makeRpm upload' echo '1 -- exec install' echo '2 -- exec makeRpm' echo '3 -- exec upload,the username and host only affect this action.' } function all(){ install makeRpm upload } function install(){ echo 'mvn install' mvn clean install -Denv=release -Dmaven.test.skip=true >>/dev/null } function makeRpm(){ echo 'make-rpm,please make u rpm version is 4.4.x' ./make-rpm.sh>>/dev/null } function upload(){ echo 'upload the rpm to server' if [ -z $username ];then username='xxx' fi if [ -z $host ];then host='xx.xx.xx.xx' fi scp ./target/rpm/RPMS/noarch/*.rpm $username@$host:/home/$username/ >>/dev/null } #start execute info echo 'deploy start' if [ -z $command -o $command = 0 ];then #这里面-o是或的关系,-a是and关系 all elif [ $command = 1 ];then install elif [ $command = 2 ];then makeRpm elif [ $command = 3 ];then upload fi echo 'deploy success!'
这个脚本的不好之处,就是在上传的时候因为采用了scp的方式,需要手动输入密码,后续考虑使用expert的方式,让密码自动输入,这样就可以让脚本自动执行,让人休息了!