Jenkins自动部署Maven +tomcat+linux环境java项目并自动部署到外网
来源:互联网 发布:mac pdf编辑 编辑:程序博客网 时间:2024/05/16 07:52
Jenkins一种持续集成的工具,持续集成好处千万多,最重要的一条是自动化,避免我们做重复操作,我这里只讲持续集成自动化部署war到线上,其它什么定时编译,检查代码什么的,自己有空去研究。
jenkins有2种安装方式:
1.下载msi直接安装到本地
2.下载war,用java -jar jenkins.war方式启动。这种方式更灵活,可以将war放到阿里云上,然后在阿里云上搭建个持续集成环境。
去https://jenkins.io/上下载jenkins.war,最新的jenkins.war是2.70版本,他需要java8,其实最稳定版本是2.60.1,它可以在java7环境上跑。
下载msi安装包,一路下一步,最后安装成功会自动占用8080端口,直接在浏览器里访问http://localhost:8080/即可打,然后设置密码,创建帐号,注意这个帐号是本地帐号,只能在本机上使用,千万别以为是线上帐号哦。
安装环境:
1.Java7
2.点击“系统设置”->”管理插件”->“可选插件”里搜索安装几个插件
2.1 maven 插件
2.2 svn插件
2.3 deploy插件
2.4 publish Over SSH插件,连接线上环境使用的插件
其它插件根据需要下载安装,一般现在就够了,想学其它功能,宁可多下也不可少下。
3.参数配置,系统管理->系统配置
主目录配置:指定从svn下载下来的代码存放位置:
Publish over SSH:连接外网,自动上传及其它linux命令
Global Tool Configuration配置:
4.1Maven Configuration配置:
4.2.JDK安装,注意最好不选点“自动安装”,直接选 本机java安装环境目录:
4.3 git配置,如果有需要就配置:
4.4 maven配置,不用选“自动安装”,配置maven环境:
至此全局配置完成,我们就可以环境项目持续集成了。
5.1新建工程,填个项目名,然后选择maven项目
5.2填项目名称,及描述
5.3 Maven Info Plugin Configuration配置,选“丢弃旧的构建”
5.4 源代码管理,选择subversion,填帐号及密码
5.5 如果在构建一个项目之前需要构建其它项目,那么就需要选“Pre Steps”,如果没有则跳过这一步。
填参数Goals:clean install
POM:XXX/pom.xml
JVM Options:-Xmx1024m
5.6 Build要构建的项目
Goals and options :clean package -Pstage -Dmaven.test.skip=true
设置maven配置文件
5.6.重头戏,自动化部署到外网:
“增加构建后操作步骤”选:“Send build artifacts over SSH”
Name:即在系统设置里配的服务器地址
Source files:要上传的文件,这里指定上传的是war,YUI_ADM_WAR/target/*.war
Remove prefix:指定需要过滤的文件夹,YUI_ADM_WAR/target/
Remote directory:指定将war上传到服务器哪个目录,/usr/local/tomcat/newWarBack
Exec command:上传完成后要执行的linux命令
PROJECT_NAME=admTOMCAT_VERSION=apache-tomcat-7.0.68-1TOMCAT_HOME="/usr/local/tomcat/"$TOMCAT_VERSION""echo "backup"cp "$TOMCAT_HOME"/webapps/"$PROJECT_NAME".war /usr/local/tomcat/oldWarBack/"$PROJECT_NAME"_`date +%Y%m%d%H%M`.war#检查一下,删除5天前的war包文件,find/usr/local/tomcat/oldWarBack -mtime +10 -type f -name *.war -exec rm -rf {} \;echo "over"cp /usr/local/tomcat/newWarBack/"$PROJECT_NAME".war "$TOMCAT_HOME"/webapps/ ps -ef |grep "$TOMCAT_VERSION" | grep -v grep |awk '{print $2}'|xargs kill -9cd "$TOMCAT_HOME"/webapps echo "remover war file" rm -rf "$PROJECT_NAME"cd "$TOMCAT_HOME"/bin echo "start tomcat" ./startup.sh
强制杀死tomcat进程,删除已经部署过的war文件夹(注意不是war文件而是war部署生成的文件夹),执行启动tomcat命令。
ps:注意这是由本地上传到外网的命令,但走SSH上传是很慢的.有时jenkins和服务器和要运行的服务器在一起,就可以不用上传,可以只执行shell命令不上传文件,使用cp命令复制了.如下:
把
Source files , Remove prefix,Remote directory都设为空,只保留Exec command,加上cp命令实现linux内网传输,完整命令如下:
cp /home/cy/jenkinsws/workspace/oil_stage_adm/src/master/base/YUI_ADM_WAR/target/*.war /usr/local/tomcat/newWarBackPROJECT_NAME=admTOMCAT_VERSION=apache-tomcat-7.0.68-1TOMCAT_HOME="/usr/local/tomcat/"$TOMCAT_VERSION""echo "backup"cp "$TOMCAT_HOME"/webapps/"$PROJECT_NAME".war /usr/local/tomcat/oldWarBack/"$PROJECT_NAME"_`date +%Y%m%d%H%M`.war#检查一下,删除5天前的war包文件,find/usr/local/tomcat/oldWarBack -mtime +10 -type f -name *.war -exec rm -rf {} \;echo "over"cp /usr/local/tomcat/newWarBack/"$PROJECT_NAME".war "$TOMCAT_HOME"/webapps/ ps -ef |grep "$TOMCAT_VERSION" | grep -v grep |awk '{print $2}'|xargs kill -9cd "$TOMCAT_HOME"/webapps echo "remover war file" rm -rf "$PROJECT_NAME"cd "$TOMCAT_HOME"/bin echo "start tomcat" ./startup.sh
5.7.执行立即构建:
当输出如下时则表示已经构建完成
6.重启: http://localhost:8080/restart
退出:http://localhost:8080/exit
就是在浏览器里输入回车即可。
- Jenkins自动部署Maven +tomcat+linux环境java项目并自动部署到外网
- Jenkins自动部署Maven +tomcat+linux环境java项目并自动部署到外网(补)
- Jenkins自动部署maven项目到tomcat
- Jenkins自动部署maven项目到tomcat
- jenkins+tomcat+ant+java+linux 自动部署项目
- Jenkins自动部署Tomcat项目
- linux服务器配置jenkins maven svn自动部署到tomcat
- linux服务器配置jenkins maven svn自动部署到tomcat
- Jenkins+maven+svn+tomcat自动编译部署
- jenkins + maven + svn + tomcat+nexus 自动部署
- Jenkins+Maven+SVN+Tomcat自动部署
- jenkins + maven + svn + tomcat 自动部署
- Jenkins+maven+svn+tomcat自动编译部署
- jenkins + maven +svn+ tomcat 自动构建部署
- windows环境下使用jenkins自动部署发布项目(eclipse + svn + maven + tomcat + jenkins),注意是windows环境
- jenkins 自动部署脚本 自动启停tomcat并部署项目
- Jenkins自动部署Maven 多个子项目
- Jenkins 自动部署 项目
- 2.2 贝叶斯决策论——连续特征
- Internal Server Error mysql负回收导致网站异常
- win10 64位操作系统下jdk安装
- pyspark用pipe管道调用bash脚本时,遇到Permission Denied问题
- Java知识点总结归纳
- Jenkins自动部署Maven +tomcat+linux环境java项目并自动部署到外网
- PostgreSQL 9.4 流复制环境搭建
- 从零开始写javaweb框架笔记23-使框架具备AOP特性-实现事务控制特性
- Class类中getDeclaredFields() 与getFields()的区别
- 微信h5支付 回调签名验证
- Java基础之Calendar类、JNDI之XML
- A Fatal error occurred while performing the refactoring
- NYOJ 37-回文字符串(简单DP)
- 鱼蛋分类及加盟注意事项