jenkins自动部署tomcat
关于部署的3种思路:
- 远程部署(jenkins编译部署到远程服务器):
- 安装ssh插件
- ssh插件配置
- 添加远程jenkins服务器节点:
- 本地部署(与jenkins在同一服务器):
关于maven构建的两种选择:
- 直接选择maven插件
- 自带插件():
- 插件配置(或直接新建maven项目):
- 添加shell编译过程,通过shell调用服务器的maven环境
jenkins配置:
export BUILD_ID=XXXXXX # 必须得加,原因未知,否则无法启动tomcat
export project_dir=$WORKSPACE
export target_dir=/export/App/zgbcms.m.jd.com
export do_dir=/export/Domains/zgbcms.m.jd.com/server1/bin
export war_path="cms-web"
export war_file="cms-web.war"
# 接受6个参数,mvn_parama为编译什么版本,接受参数dovolopment,test
export mvn_parama="test"
/home/lyz/bushu.sh
环境部署shell:
#!/bin/bash
# 自动编译部署脚本,jenkins调用
# 编译后生成文件war,清空并解压到指定文件夹,重启服务器
export M2_HOME=/export/servers/apache-maven-2.2.1
export JAVA_HOME=/export/servers/jdk1.6.0_25
export JAVA_BIN=/export/servers/jdk1.6.0_25/bin
export PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/bin
export CLASSPATH=.:/lib/dt.jar:/lib/tools.jar
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"
export JAVA_HOME JAVA_BIN PATH CLASSPATH JAVA_OPTS
export PATH=$PATH:$M2_HOME/bin
# 测试用传参
#export project_dir=/root/.jenkins/workspace/zgb_server_master
#export target_dir=/export/App/zgb.m.jd.com
#export do_dir=/export/Domains/zgb.m.jd.com/server1/bin
#export war_path="jd-qqgserver-web"
#export war_file="jd-qqgserver-web.war"
project_dir=$project_dir
target_dir=$target_dir
do_dir=$do_dir
war_path=$war_path
war_file=$war_file
mvn_parama=$mvn_parama
echo $project_dir
echo $target_dir
echo $do_dir
echo $war_path
echo $war_file
echo $mvn_parama
function mvn_build()
{
if[ $# -eq 6 ] # 校验参数是否为6个
then
if[-d "$project_dir/"]&&[-d "$target_dir/"]&&[-d "$do_dir/"]# 校验文件夹是否存在
then
cd $project_dir
if["$mvn_parama"=="development"]
then
echo "编译开发版本!"
mvn clean install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -P artifactory,development
elif["$mvn_parama"=="test"]
then
echo "编译test版本!"
mvn clean install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -P artifactory,test
else
echo "未指定配置文件参数!会导致服务器无法访问!"
exit 1
fi
rm -rf $target_dir/*
cp -r $project_dir/$war_path/target/$war_file $target_dir/
echo $target_dir/$war_file
cd $target_dir
unzip -oq $war_file
rm -rf $target_dir/$war_file
$do_dir/stop.sh
if[ $?==0]
then
echo "服务器停止成功!"
else
echo "服务器停止失败!"
fi
$do_dir/start.sh
if[ $?==0]
then
echo "服务器启动成功!"
else
echo "服务器启动失败!"
exit 1# 退出状态为1,传给jenkins让任务失败
fi
else
echo "Folder $* is not exist!"
exit 1
fi
else
echo "$0 is Errors! Parama is $# not 6!"
exit 1
fi
}
# 接受6个参数,mvn_parama为编译什么版本,接受参数dovolopment,beta,production,test 或其他,其他为默认
mvn_build $project_dir $target_dir $do_dir $war_path $war_file $mvn_parama
附件列表
jenkins自动部署tomcat的更多相关文章
- Jenkins自动部署Tomcat项目
Jenkins自动部署Tomcat项目 1.安装jenkins 插件 启动Jenkins,进入系统管理-插件管理: 选择Deploy to container Plugin 插件安装:
- 内存溢出导致jenkins自动部署到tomcat失败
原文地址:http://openwares.net/java/jenkens_deploy_to_tomcat_error_of_outofmemoryerror.html jenkins自动部署wa ...
- 使用jenkins自动部署java工程到jboss-eap6.3 -- 1.环境搭建
使用jenkins自动部署java工程到jboss-eap6.3 -- 1.环境搭建 目录 使用jenkins自动部署java工程到jboss-eap6.3 -- 1.环境搭建 使用jenkins自动 ...
- jekins自动部署tomcat注意事项、连接tomcat报错
jekins自动部署tomcat注意事项 千万不要用下面插件推送,报错很多, 要用脚本,一篇博客说的:“我们都是用的脚本,插件报错太多,也不完善” Deploy to container Plugin ...
- 使用Maven自动部署Tomcat 6和Tomcat 7下Web应用
使用Maven自动部署Tomcat 6和Tomcat 7下Web应用 开启Tomcat远程管理权限 在tomcat的config目录下的tomcat-users.xml文件, <role rol ...
- linux下实现自动部署tomcat的脚本
linux下实现自动部署tomcat的脚本 由于经常部署war到tomccat上,经常有一些重复的工作要做:停服务.备份war包.上传新的war包.启动服务.索性就写了一个自动部署的脚本. 脚本如下a ...
- 使用Jenkins自动部署博客
title: 使用Jenkins自动部署博客 toc: true comment: true date: 2017-12-17 19:48:10 tags: ['Jenkins', 'CI'] cat ...
- 自动部署tomcat 脚本
自动部署tomcat 脚本 . /etc/init.d/functions #调用系统函数 yum -y install java >/dev/null TAR="apache-tom ...
- jenkins自动部署代码到多台服务器
下面讲一下如何通过一台jenkins服务器构建后将代码分发到其他的远程服务器,即jenkins自动部署代码到多台服务器. 1.下载 pulish over ssh 插件 2.系统管理 -> 系统 ...
随机推荐
- 15) maven dependency scope
Dependency Scope Dependency scope is used to limit the transitivity of a dependency, and also to aff ...
- jmeter 5.0版本更新说明(个人做个记录)
变化 此页面仅详细说明了当前版本中所做的更改. 先前更改的历史记录中详细介绍了早期更改. 5.0版 摘要 新的和值得注意的 不兼容的变化 Bug修复 改进 非功能性变化 已知问题和解决方法 谢 ...
- linux cpu过高原因及代码定位
1. top命令查看CPU和内存占用率 top回车,然后按1 发现进程PID 35163 CPU和内存占用率都很高 top - 06:13:47 up 5:31, 1 user, load av ...
- hdu3333 Turing Tree 2016-09-18 20:53 42人阅读 评论(0) 收藏
Turing Tree Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...
- PAT甲 1048. Find Coins (25) 2016-09-09 23:15 29人阅读 评论(0) 收藏
1048. Find Coins (25) 时间限制 50 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Eva loves t ...
- 图片捕获工具driftnet
driftnet是一款简单而使用的图片捕获工具,可以很方便的在网络数据包中抓取图片.该工具可以实时和离线捕获指定数据包中是图片,当然在kali里是有的. 在我之前的一篇博文<kali下搭建WiF ...
- D3 drag
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- nodejs+express安装配置(Linux版本)
在ubuntu下面,直接从源里面安装nodejs的话,此版本还行,但是相关的express等,会比较老. 采用源码安装,先下载nodejs的源码,然后三步: ./configure make make ...
- SQL笔记---分页
随用随想,随用随记. 通过实际应用掌握SQL语句. 一. SQL分页 1. 第一种方法:利用ID大于多少进行筛选 SELECT TOP 20 *FROM dbo.WMS_Stock ...
- linux系统编程之信号(一):中断与信号
一,什么是中断? 1.中断的基本概念 中断是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被 ...