设为首页 收藏本站
查看: 1229|回复: 0

[经验分享] Jenkins与Git持续集成&&Linux上远程部署Java项目

[复制链接]

尚未签到

发表于 2018-1-8 07:22:30 | 显示全部楼层 |阅读模式
一、环境搭建

1、安装所需软件


  • Jdk
  • Maven
  • Jenkins
  • Tomcat
  • Xshell
  • git
  以上软件去官网下载,比较简单,不一一描述了

2、安装所需的jenkins插件


  • Git plugin
  • GitHub plugin      git插件,download代码至本地
  • Mailer Plugin       邮件插件
  • Publish Over SSH     远程访问Linux服务器插件
  打开jenkins—》系统管理—》管理插件—》可选插件,输入要下载的插件,勾选直接安装,安装完成页面勾选重启,插件安装成功


3、配置jdk\maven\tomcat环境变量
  路径:我的电脑---》属性—》高级系统设置—》环境变量


  • Jdk环境变量配置
  JAVA_HOME: C:\Program Files\Java\jdk1.8.0
  CLASSPATH: .; %JAVA_HOME%\lib\dt.jar; %JAVA_HOME%\lib\tools.jar
  PATH: %JAVA_HOME%\bin; %JAVA_HOME%\jre\bin


  • Maven环境变量配置
  M2_HOME: C:\maven
  MAVEN_OPTS: -Xms256m -Xmx512m
  PATH: %M2_HOME%\bin


  • Tomcat环境变量配置
  CATALINA_BASE:c:\tomcat
  CATALINA_HOME: c:\tomcat
  CLASSPATH : %CATALINA_HOME%\common\lib\servlet.jar
  PATH: %CATALINA_HOME%\bin; %CATALINA_HOME%\lib


  • Linux环境变量配置
  修改etc/profile文件,文件末尾添加
# jdk1.8 settings

JAVA_HOME=/usr/java/jdk1.8.0_51

JRE_HOME=$JAVA_HOME/jre

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

export JAVA_HOME JRE_HOME PATH>
#tomcat settings

CATALINA_HOME=/usr/local/tomcat

CATALINA_BASE=/usr/local/tomcat

export CATALINA_HOME CATALINA_BASE

保存,执行source /etc/profile生效

然后在tomcat/bin/目录下创建setenv.sh文件,文件内容如下

#!/bin/bash

CATALINA_HOME=/usr/local/tomcat

CATALINA_PID=$CATALINA_HOME/bin/CATALINA_PID

ID=`ps -ef | grep java | grep tomcat|awk '{print $2}'`

    echo $ID

    for>
    do

     echo $id > $CATALINA_PID

    done


JAVA_OPTS=`-Xms512m -Xmx1024m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=1024m`

JAVA_HOME=/usr/java/jdk1.8.0_51

JRE_HOME=/usr/java/jdk1.8.0_51/jre

在tomcat/bin目录下创建CATALINA_PID文件

把setenv.sh文件内容copy至/bin/catalina.sh文件

Linux环境变量配置是为解决后面执行shell脚本时重启tomcat报错


4、修改maven配置文件,修改版本库地址和jdk版本
  修改配置文件:maven—>conf-->settings.xml
  jdk默认是被注释的,放开后,修改为当前安装的jdk版本,否则构建时会报错

  创建maven版本库地址,然后在settings.xml中添加版本库地址
  添加<localRepository>D:/repository</localRepository>一行代码,如图


5、配置远程tomcat站点,创建站点文件夹(存放war包)
  修改tomcat下server.xml文件


二、构建java项目

1、设置jenkins全局变量
  打开jenkins,进入系统管理,
  l  Maven\JDK\git安装目录,如图



  l  配置邮件通知,此处的邮件地址要跟管理员一样,勾选发送邮件测试配置,输入收件人地址,若配置成功,会收到测试邮件

  l  选择要发布的具体位置,输入以下内容后,点击test configuration,验证是否连接成功
  SSH Server Name: 远程连接名字,随便起
  HostName:远程主机ip
  Usename:远程登录名
  Remote Directory:发布远程目录
  Passphrase/Password: 远程登录密码


2、创建maven项目,修改配置项
  l  新建job,选择构建一个maven项目

  l  配置job


  • 源码管理:输入git地址



  • 构建触发器:勾选Build whenever a SNAPSHOT dependency is built,建立快照依赖关系



  • 构建文件:构建pom文件(pom相对路径,Jenkins识别路径至workspace)+构建命令clean install -P test/-P pro



  • 远程发布信息:



  • 设置发送邮件通知,构建不稳定时和构建失败时发送邮件通知


三、编写脚本并发布

1、编写shell脚本,脚本上传至远程机器


  

#!/bin/bash  

  
export LANG
="en_US.UTF-8"  

  
PROJECT
=admin  

  
BACK_DIR
=/usr/local/autodeploy/back/$PROJECT  

  
TEMP_DIR
=/usr/local/autodeploy/temp/$PROJECT  

  
TOMCAT_HOME
=/usr/local/tomcat  

  
WEBAPPS
=webapps_jfadmin  

  

if [ -f $TEMP_DIR/$PROJECT.war ]; then  

  echo
"=======If temp exists war,finding tomcat PID======"  

  echo
"===================killing tomcat================="  

  ID
=`ps -ef | grep java | grep tomcat|awk '{print $2}'`  

  echo $ID
  

for>

do  

  kill
-9 $id  

  echo
"killed$id"  

  done
  

  echo
"===================killed tomcat==================="  

  echo
"===================shutdown tomcat==================="  

  #shutdown tomcat
  

  cd $TOMCAT_HOME
/bin  

  sh shutdown.sh
  

  
#sleep3
  

if [ -f $TOMCAT_HOME/$WEBAPPS/$PROJECT.war ]; then  

  echo
"[INFO] If /usr/local/tomcat/webapps_jfadmin/admin.war exists,it will delete old war and its folder"  

  echo
"[INFO]=================deleteing old war ================="  

  rm
-rf $TOMCAT_HOME/$WEBAPPS/$PROJECT.war  

  rm
-rf $TOMCAT_HOME/$WEBAPPS/$PROJECT  

else  

  echo
"[INFO] ===================old war not exits==================="  

  fi
  

  

  echo
"[INFO] Copying /usr/local/autodeploy/temp/admin.war to /usr/local/autodeploy/tomcat/webapps_jfadmin"  

  #echo
"===================copying new war==================="  

  cp $TEMP_DIR
/$PROJECT.war $TOMCAT_HOME/$WEBAPPS/$PROJECT.war  

  

  echo
"[INFO] ===================backing war==================="  

  echo
"[INFO] Creating the back folder "  

  mkdir
-p $BACK_DIR  

  echo
"[INFO] Backing /usr/local/autodeploy/tomcat/webapps_jfadmin/admin.war to /usr/local/autodeploy/back/admin,and named by date"  

  cp $TOMCAT_HOME
/$WEBAPPS/$PROJECT.war $BACK_DIR/"$PROJECT"_`date +%Y%m%d%H%M%S`.war  

  

  #echo
"===================deleting temp file==================="  

  echo
"[INFO] Deleting /usr/local/autodeploy/temp/admin/admin.war"  

  rm
-rf $TEMP_DIR/$PROJECT.war  

  #start tomcat
  

  echo
"===================starting tomcat==================="  

  cd  $TOMCAT_HOME
/bin  

  sh  startup.sh
  

  

  echo
"[INFO] ===================finished!=========================="  

  
else
  

  echo "===================temp file not exits==================="
  

  
fi
  


shell脚本
2、发布
  进入jobs列表,点击构建即可

  构建成功,如下图所示


四、附属

4.1 Jenkins部署流程图
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-432786-1-1.html 上篇帖子: Jenkins配置git进行构建失败:Error cloning remote repo 下篇帖子: jenkins上集成fitnesse
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表