Jenkins自动部署Maven +tomcat+linux环境java项目并自动部署到外网

来源:互联网 发布:mac pdf编辑 编辑:程序博客网 时间:2024/05/16 07:52

Jenkins一种持续集成的工具,持续集成好处千万多,最重要的一条是自动化,避免我们做重复操作,我这里只讲持续集成自动化部署war到线上,其它什么定时编译,检查代码什么的,自己有空去研究。

jenkins2种安装方式:

1.下载msi直接安装到本地

2.下载war,用java -jar jenkins.war方式启动。这种方式更灵活,可以将war放到阿里云上,然后在阿里云上搭建个持续集成环境。

https://jenkins.io/上下载jenkins.war,最新的jenkins.war2.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

就是在浏览器里输入回车即可。




阅读全文
0 0