jenkins+maven+java(七)自动构建部署项目到远程服务器

### jenkins自动构建部署项目到远程服务器

​ 注意:对于远程服务跟本地服务的区别在于,需要把mvn打包好的文件直接传送到远程的服务器上,

​ 并且重启tomcat即可。

  • 首先需要安装Publish Over SSH–用于连接远程服务器

  • 配置连接远程服务器的ssh(系统设置---->Publish over SSH–>SSH Servers 点击新增)

    Passphrase填写远程用户对应的密码
    Name自定义服务器名(centos7_2)
    Hostname远程服务器的IP(192.168.44.131)
    Username远程服务器的用户名(admin)
    Remote Directory传输文件的目录(/usr/local/tomcat-web),注意到tomcat所在目录即可

    点击Test Configuration,如果提示success,则成功配置

  • 构建–>选择invoke top-level Maven targets—>填写版本和目标—>版本选择自己的命名的版本,目标:clean install

  • 先测试以上步骤,是否能够正常构建以及生产war文件

  • 构建后操作–>选择 send build artifacts over SSH

    Name全局配置的远程服务器的名字,如果有多个需要选择
    Source files项目构建后的目录(target/*.war)
    Remove prifix去掉的 前缀(target/)
    Remote directory发布的目录(webapps)跟上述Remote Directory对应即可,相对路径
    Exec command发布完执行的命令两个方式:
    可以直接填入一下自定义脚本
    • 第一种方式自定义脚本如下:

      #!/bin/bash
      BUILD_ID=DONTKILLME
      # 查看进行,搜索tomcat-web服务进程,排除grep的进程,输入查询到的数据第二列
      tomcatwebpid=`ps -ef | grep tomcat-web | grep -v grep | awk '{print $2}'`
      if [ "$tomcatwebpid" == "" ]
      then
      	echo "tomcatweb没有在运行..."
      else
      	echo "tomcatweb项目的进程ID为:${tomcatwebpid}"
      
      	# 开始遍历杀死相关进程
      	echo "开始杀进程..."
      	for pid in $tomcatwebpid
      	do
      	kill -9 $pid
      	done
      	echo "tomcatwebpid进程已经被杀死..."
      fi
      
      # 启动相应的服务
      echo "启动tomcat-web服务..."
      /usr/local/tomcat-web/bin/startup.sh
      tomcatwebpid=`ps -ef | grep tomcat-web | grep -v grep | awk '{print $2}'`
      
      # 判断是否启动成功
      if [ "$tomcatwebpid" == "" ]
      then
              echo "tomcatweb启动失败!!!"
      else
      	echo "tomcatweb启动成功,pid:${tomcatwebpid}"
      fi          
      ​```
      
    • 运行上述脚本,日志输出:

      Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
      At least one of these environment variable is needed to run this program
      

      但是远程服务器,明明就已经有JAVA_HOME,解决方法:

      #在脚本加入
      export JAVA_HOME=/usr/local/java/jdk11
      export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
      export PATH=$PATH:$JAVA_HOME/bin
      

      所以脚本修改为:

      #!/bin/bash
      
      export JAVA_HOME=/usr/local/java/jdk11
      export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
      export PATH=$PATH:$JAVA_HOME/bin
      
      BUILD_ID=DONTKILLME
      
      # 查看进行,搜索tomcat-web服务进程,排除grep的进程,输入查询到的数据第二列
      tomcatwebpid=`ps -ef | grep tomcat-web | grep -v grep | awk '{print $2}'`
      if [ "$tomcatwebpid" == "" ]
      then
      	echo "tomcatweb没有在运行..."
      else
      	echo "tomcatweb项目的进程ID为:${tomcatwebpid}"
      
      	# 开始遍历杀死相关进程
      	echo "开始杀进程..."
      	for pid in $tomcatwebpid
      	do
      	kill -9 $pid
      	done
      	echo "tomcatwebpid进程已经被杀死..."
      fi
      
      # 启动相应的服务
      echo "启动tomcat-web服务..."
      /usr/local/tomcat-web/bin/startup.sh
      tomcatwebpid=`ps -ef | grep tomcat-web | grep -v grep | awk '{print $2}'`
      
      # 判断是否启动成功
      if [ "$tomcatwebpid" == "" ]
      then
              echo "tomcatweb启动失败!!!"
      else
      	echo "tomcatweb启动成功,pid:${tomcatwebpid}"
      fi         
      ​```
      
    • 第二种方式的脚本:

      #!/bin/bash
      
      export JAVA_HOME=/usr/local/java/jdk11
      export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
      export PATH=$PATH:$JAVA_HOME/bin
      
      BUILD_ID=DONTKILLME
      /usr/local/tomcat-web/bin/startup.sh
      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值