jenkins+maven+java(六)-测试项目本地服务器的搭建

jenkins-测试项目的配置-本地服务器的搭建

提醒:如果jenkins自动部署项目,则要关注所在位置,比如jenkins部署在tomcat,而项目也部署在tomcat,则会产生问题,比如需要关掉项目,则就要关掉tomca1,但是这意jenkins也无法使用咯。所以一般jenkins部署在一个tomcat,中,而项目部署在另一个服务器tomcat-web中,当部署项目时可以把tomcat-web服务关掉以及重启

1、配置maven,实现代码拉取打包
  • 基于之前的测试脚本的配置,已经不需要配置过多,在之前的基础上进行配置

  • 配置全局工具mvn工具

    • 系统管理–>全局工具配置---->Maven---->点击新增---->输入name和命令存放的地址如:name:mvn36

      MAVEN_HOME:/usr/local/maven

  • 新增一个自由的项目

  • 配置git的项目地址

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

  • 测试构建是否正常,应该正常拉取代码,同时生成一个target,里面有war包

2、把war包部署在项目服务器上(jenkins跟项目服务器在同一个服务器中)
  • 实现项目的部署,主要是使用构建,使用shell命令,把war拷贝到项目所在的tomcat-web/webapps中

    • 查看进程并杀死进程的shell-测试通过

      
      #!/bin/bash
      # 查看进行,搜索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
      
      
    • 拷贝当前的文件到指定目录下-测试通过

      #!/bin/bash
      # 移动目标文件到目标地
      mv helloweb.war /usr/local/tomcat-web/webapps
      
    • 启动相应的服务-测试通过

      #!/bin/bash
      # 启动相应的服务
      /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}"
      
    • 完整的脚本

      #!/bin/bash
      # 查看进行,搜索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服务器"
      mv ./target/helloweb.war /usr/local/tomcat-web/webapps
      
      # 启动相应的服务
      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          
      
  • 构建–>添加exceute shell,添加上面的脚本

    可以看到日志提示成功,目标文件也已经复制过去,但是服务没启动,

    原因:

    Jenkins默认会在Build结束后Kill掉所有的衍生进程。

    解决方法:在execute shell输入框中加入BUILD_ID=DONTKILLME,即可防止jenkins杀死启动的java进程

    #!/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服务器"
    mv ./target/helloweb.war /usr/local/tomcat-web/webapps
    
    # 启动相应的服务
    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          
    
  • 因为tomcat的原因,直接拷贝过去,可直接启动tomcat就好,也可以使用下面得简单脚本:

    #!/bin/bash
    BUILD_ID=DONTKILLME
    
    # 移动目标文件到目标地
    echo "移动文件到tomcat-web服务器"
    mv ./target/helloweb.war /usr/local/tomcat-web/webapps
    
    # 启动相应的服务
    /usr/local/tomcat-web/bin/startup.sh
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值