关于部署的3种思路:

  • 远程部署(jenkins编译部署到远程服务器):
    • 安装ssh插件

    • ssh插件配置

  • 添加远程jenkins服务器节点:

  • 本地部署(与jenkins在同一服务器):

关于maven构建的两种选择:

    • 直接选择maven插件
      • 自带插件():

      • 插件配置(或直接新建maven项目):

 
 
    • 添加shell编译过程,通过shell调用服务器的maven环境
jenkins配置:
  1. export BUILD_ID=XXXXXX # 必须得加,原因未知,否则无法启动tomcat
  2. export project_dir=$WORKSPACE
  3. export target_dir=/export/App/zgbcms.m.jd.com
  4. export do_dir=/export/Domains/zgbcms.m.jd.com/server1/bin
  5. export war_path="cms-web"
  6. export war_file="cms-web.war"
  7. # 接受6个参数,mvn_parama为编译什么版本,接受参数dovolopment,test
  8. export mvn_parama="test"
  9. /home/lyz/bushu.sh
环境部署shell:
  1. #!/bin/bash
  2. # 自动编译部署脚本,jenkins调用
  3. # 编译后生成文件war,清空并解压到指定文件夹,重启服务器
  4. export M2_HOME=/export/servers/apache-maven-2.2.1
  5. export JAVA_HOME=/export/servers/jdk1.6.0_25
  6. export JAVA_BIN=/export/servers/jdk1.6.0_25/bin
  7. export PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/bin
  8. export CLASSPATH=.:/lib/dt.jar:/lib/tools.jar
  9. export JAVA_OPTS="-Djava.library.path=/usr/local/lib -server -Xms1024m -Xmx1024m -XX:MaxPermSize=256m -Djava.awt.headless=true -Dsun.net.client.defaultConnectTimeout=60000 -Dsun.net.client.defaultReadTimeout=60000 -Djmagick.systemclassloader=no -Dnetworkaddress.cache.ttl=300 -Dsun.net.inetaddr.ttl=300"
  10. export JAVA_HOME JAVA_BIN PATH CLASSPATH JAVA_OPTS
  11. export PATH=$PATH:$M2_HOME/bin
  12. # 测试用传参
  13. #export project_dir=/root/.jenkins/workspace/zgb_server_master
  14. #export target_dir=/export/App/zgb.m.jd.com
  15. #export do_dir=/export/Domains/zgb.m.jd.com/server1/bin
  16. #export war_path="jd-qqgserver-web"
  17. #export war_file="jd-qqgserver-web.war"
  18. project_dir=$project_dir
  19. target_dir=$target_dir
  20. do_dir=$do_dir
  21. war_path=$war_path
  22. war_file=$war_file
  23. mvn_parama=$mvn_parama
  24. echo $project_dir
  25. echo $target_dir
  26. echo $do_dir
  27. echo $war_path
  28. echo $war_file
  29. echo $mvn_parama
  30. function mvn_build()
  31. {
  32. if[ $# -eq 6 ] # 校验参数是否为6个
  33. then
  34. if[-d "$project_dir/"]&&[-d "$target_dir/"]&&[-d "$do_dir/"]# 校验文件夹是否存在
  35. then
  36. cd $project_dir
  37. if["$mvn_parama"=="development"]
  38. then
  39. echo "编译开发版本!"
  40. mvn clean install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -P artifactory,development
  41. elif["$mvn_parama"=="test"]
  42. then
  43. echo "编译test版本!"
  44. mvn clean install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -P artifactory,test
  45. else
  46. echo "未指定配置文件参数!会导致服务器无法访问!"
  47. exit 1
  48. fi
  49. rm -rf $target_dir/*
  50. cp -r $project_dir/$war_path/target/$war_file $target_dir/
  51. echo $target_dir/$war_file
  52. cd $target_dir
  53. unzip -oq $war_file
  54. rm -rf $target_dir/$war_file
  55. $do_dir/stop.sh
  56. if[ $?==0]
  57. then
  58. echo "服务器停止成功!"
  59. else
  60. echo "服务器停止失败!"
  61. fi
  62. $do_dir/start.sh
  63. if[ $?==0]
  64. then
  65. echo "服务器启动成功!"
  66. else
  67. echo "服务器启动失败!"
  68. exit 1# 退出状态为1,传给jenkins让任务失败
  69. fi
  70. else
  71. echo "Folder $* is not exist!"
  72. exit 1
  73. fi
  74. else
  75. echo "$0 is Errors! Parama is $# not 6!"
  76. exit 1
  77. fi
  78. }
  79. # 接受6个参数,mvn_parama为编译什么版本,接受参数dovolopment,beta,production,test 或其他,其他为默认
  80. mvn_build $project_dir $target_dir $do_dir $war_path $war_file $mvn_parama
 

附件列表

jenkins自动部署tomcat的更多相关文章

  1. Jenkins自动部署Tomcat项目

    Jenkins自动部署Tomcat项目 1.安装jenkins 插件 启动Jenkins,进入系统管理-插件管理: 选择Deploy to container Plugin 插件安装:

  2. 内存溢出导致jenkins自动部署到tomcat失败

    原文地址:http://openwares.net/java/jenkens_deploy_to_tomcat_error_of_outofmemoryerror.html jenkins自动部署wa ...

  3. 使用jenkins自动部署java工程到jboss-eap6.3 -- 1.环境搭建

    使用jenkins自动部署java工程到jboss-eap6.3 -- 1.环境搭建 目录 使用jenkins自动部署java工程到jboss-eap6.3 -- 1.环境搭建 使用jenkins自动 ...

  4. jekins自动部署tomcat注意事项、连接tomcat报错

    jekins自动部署tomcat注意事项 千万不要用下面插件推送,报错很多, 要用脚本,一篇博客说的:“我们都是用的脚本,插件报错太多,也不完善” Deploy to container Plugin ...

  5. 使用Maven自动部署Tomcat 6和Tomcat 7下Web应用

    使用Maven自动部署Tomcat 6和Tomcat 7下Web应用 开启Tomcat远程管理权限 在tomcat的config目录下的tomcat-users.xml文件, <role rol ...

  6. linux下实现自动部署tomcat的脚本

    linux下实现自动部署tomcat的脚本 由于经常部署war到tomccat上,经常有一些重复的工作要做:停服务.备份war包.上传新的war包.启动服务.索性就写了一个自动部署的脚本. 脚本如下a ...

  7. 使用Jenkins自动部署博客

    title: 使用Jenkins自动部署博客 toc: true comment: true date: 2017-12-17 19:48:10 tags: ['Jenkins', 'CI'] cat ...

  8. 自动部署tomcat 脚本

    自动部署tomcat 脚本 . /etc/init.d/functions #调用系统函数 yum -y install java >/dev/null TAR="apache-tom ...

  9. jenkins自动部署代码到多台服务器

    下面讲一下如何通过一台jenkins服务器构建后将代码分发到其他的远程服务器,即jenkins自动部署代码到多台服务器. 1.下载 pulish over ssh 插件 2.系统管理 -> 系统 ...

随机推荐

  1. 2) 下载Maven

    http://maven.apache.org/ http://maven.apache.org/download.cgi Maven 3.3.3 (Binary tar.gz) Maven 3.3. ...

  2. Android 3D游戏开发

    OpenGL ES(OpenGL Embedded System) Android 3D游戏开发技术宝典:OpenGL ES 2.0(android 3d游戏开发技术宝典 -opengl es 2.0 ...

  3. hdu 4888 最大流慢板

    http://acm.hdu.edu.cn/showproblem.php?pid=4888 添加一个源点与汇点,建图如下: 1. 源点 -> 每一行对应的点,流量限制为该行的和 2. 每一行对 ...

  4. Flord算法传递闭包

    POJ3660 对于flord算法得学习,这篇博客写的非常好http://blog.csdn.net/ljhandlwt/article/details/52096932 这个题问你给你n头牛得前后关 ...

  5. A Good Story for Great Friends

    There once was a little girl who had a bad temper. Her mother gave her a bag of nails and told her t ...

  6. 敏捷项目管理架构(APMF)

    研读许秀影博士的<敏捷项目管理:基础知识与应用实务>一书,其中提到传统项目管理与敏捷项目管理的混合管理模式—敏捷项目管理架构(Agile Project Management Framew ...

  7. LeetCode137:Single Number II

    题目: Given an array of integers, every element appears three times except for one. Find that single o ...

  8. asp.net—执行分页存储过程的函数

    分页存储过程的T—SQL在之前的文章中已经跟大家分享过了 现在就对应 分页存储过程 跟大家分享下在.net中执行的函数. 该文章是希望给予新手一些编程过程中的帮助(大神可以帮忙指出代码中的不妥之处) ...

  9. 如何连接MSSQLSERVER2014(其他版本数据库大体相同)

    购买了服务器后我在上面安装了SqlServer2014,但是程序中总是远程连接不上,特此记录一下: 一.一些基本设置如下链接: 转载自:https://blog.sun0816.com/20381.h ...

  10. ASP.NET Core 2 学习笔记(八)URL重写

    路由跟URL 重写的功能性略有不同.路由是将Request 找到对应的服务,而URL 重写是为了推卸责任转送Request.本篇将简单介绍下ASP.NET Core的URL重写(URL Rewrite ...