Jenkins是一个开源软件项目。旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
Jenkins是基于Java开发的一种持续集成工具,用于监控持续反复的工作,功能包含:
1、持续的软件版本号公布/測试项目。
2、监控外部调用运行的工作。
本文使用的Linux:Ubuntu
当中JDK、Tomcat、SVNserver请看这里Ubuntu安装配置JDK、Tomcat、SVNserver
一、安装Jenkins
本文直接使用war包安装
下载地址:https://jenkins-ci.org/content/thank-you-downloading-windows-installer/
war包有两种安装方法
方法一
下载jenkins.war, 复制到D:\Java\Tool\jenkins()下,然后运行java -jar jenkins.war. (注意须要先安装JDK,然后设置JAVA_HOME环境变量且将%JAVA_HOME%\bin增加到PATH环境变量中)
运行例如以下:
訪问http://localhost:8080 , jenkins的主界面例如以下:
方法二
把Jenkins 1.409.1版解压。把得到的war包直接扔到tomcat下。启动tomcat,Jenkins就安装完毕,訪问http://localhost:8080
二、构建一个Maven项目
1、新建一个job
2、输入名称和项目类型
3、设置编译的版本号号等信息
4、设置svn库地址:
输入项目托管的svn的地址,假设有出现要输入账号和password的地方,输入就可以。
假设有出现例如以下说明用户或password不正确:
点击进去又一次设置用户和password
5、配置jdk和maven
第一次打开出现例如以下,点击进去。
要求提示设置JDK和Maven
点击系统管理-》系统设置,找到JDK和Maven的设置位置
选择本电脑的:
9、到这里已经能够构造这个项目了。
点击构建
构建输出的信息:
构建成功输出例如以下 :
10、验证
这时它已经自己主动把这个项目打包了一个war包,默认打包到了C:\Users\linbingwen\.jenkins\workspace\JavaWeb\JavaWeb\target
或者点击例如以下:
三、自己主动远程部署到tomcat
接下来要完毕自己主动构建成war包后。将些war包上传到远程linux的tomcat的webapps文件夹,更新项目的war包。并重新启动tomcat.
1、安装插件
系统管理-》管理插件,在可选插件里找到以下这个。然后点击直接安装命令。成功安装后要重新启动jenkins
t笔者在安装插件时报错例如以下:
这应该是天朝的墙所导致的,所以笔者就使用了手动安装的方式。
解决方法:
手动安装
到https://wiki.jenkins-ci.org/display/JENKINS/Publish+Over+SSH+Plugin。下载hpi到本地电脑到
在系统管理--管理插件--高级--浏览-上传插件就可以
然后它自己主动上传并安装:
红色的是笔者在线安装不成功的,蓝色的是笔者成功安装的了。之后重新启动jenkis就可以。
然后输入:
这里还是接着上面的JavaWeb项目,这个配置得安装了上面的插件后才会显示!
Transfer SetSource files:表示要上传的本地的war包及路径,可到工作空间去看
Remove prefix:表示要上传时要去除的文件夹。即仅仅上传war包
remote driectory:即表示运行时的路径,相当于把war包上传到这里了
exec commad:要运行的命令
#!/bin/sh #defined TOMCAT_HOME="/usr/java/tomcat/apache-tomcat-7.0.67/" ID=`ps -ef | grep java | grep tomcat|awk '{print $2}'` echo $ID echo "kill tomcat" kill -9 $ID echo "remover war file" cd "$TOMCAT_HOME"/webapps rm -rf JavaWeb-0.0.1-SNAPSHOT rm -rf JavaWeb-0.0.1-SNAPSHOT.war echo "copy war to webapp" cd /home/lin cp JavaWeb-0.0.1-SNAPSHOT.war "$TOMCAT_HOME"/webapps cd "$TOMCAT_HOME"/bin echo "start tomcat" ./startup.sh
注意:这里配置的ssh用户:lin要有root的权限,要不能够会报错没有权限运行kill 或rm 命令
本文使用的Linux:Ubuntu14.04
当中JDK、Tomcat、SVNserver请看这里Ubuntu安装配置JDK、Tomcat、SVNserver
我的deploy文件 (要在linux下编写,否则会因空格问题无法运行)
#!/bin/sh
#defined
TOMCAT_HOME="/data/tomcat-oa/"
PROJECT_HOME="/data/project/"
PROJECT_NAME="NoitomOA"
OACONFIG_FILE="/data/oaconfig/disconf.properties"
ID=`ps -ef | grep java | grep tomcat-oa|awk '{print $2}'`
echo $ID
echo "kill tomcat"
kill -9 $ID
echo "remove war file"
cd "$PROJECT_HOME"
rm -rf "$PROJECT_NAME"
echo "remove tomcat logs"
rm -rf "$TOMCAT_HOME/logs/*"
echo "copy war to webapp"
cd /data/file/
unzip NoitomOA-web.war -d "$PROJECT_HOME$PROJECT_NAME"
echo "copy config file to project"
echo y|cp "$OACONFIG_FILE" "$PROJECT_HOME$PROJECT_NAME"/WEB-INF/classes/
cd "$TOMCAT_HOME"/bin
echo "start tomcat"
./startup.sh
#!/bin/sh
#defined
TOMCAT_HOME="/data/tomcat-myswing/"
PROJECT_HOME="/data/project/"
PROJECT_NAME="myswing-service"
ID=`ps -ef | grep java | grep tomcat-myswing|awk '{print $2}'`
echo $ID
echo "kill tomcat"
kill -9 $ID
echo "remove war file"
cd $PROJECT_HOME
rm -rf $PROJECT_NAME
echo "remove tomcat logs"
rm -rf $TOMCAT_HOME/logs/*
echo "copy war to webapp"
cd /data/file/
unzip myswing-service.war -d "$PROJECT_HOME$PROJECT_NAME"
echo "copy config file to project"
cd $TOMCAT_HOME/bin
echo "start tomcat"
./startup.sh