1 Jemkins简介
Jenkins是一个独立的,开源的自动化服务,可被用于自动化各种各样的任务,例如构建,测试和部署软件。Jenkins可以通过本地系统包,Docker,甚至在Java运行时环境安装的时候,通过任何机器独立运行。
2 安装与配置
我们将使用独立的Jenkins分布式部署,要求至少Java 7,推荐使用Java 8。建议系统RAM在512MB以上。
2.1 下载Jenkins
http://mirrors.jenkins.io/war-stable/latest/jenkins.war
2.2 运行jenkins
上传jenkins.war到服务器,运行 java -jar jenkins.war
或将Jenkins.war 部署至tomcat,启动tomcat
2.3 配置Jenkins
在浏览器输入地址 http://localhost:8080 ,跟着说明完成安装
安装完成后,出现以下界面:
2.4 集成git
我们的产品使用Git作为版本管理工具,而jenkins需要git插件来支持git,所以我们需要为jenkins添加git插件。
准备:
- Linux环境git客户端
- jenkins环境 + git plugin插件
注意:jenkins、git在同一个linux服务器上
linux安装git
1、首先应该安装好必要的依赖包,省得在安装过程中出现各种问题。
#yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker |
2、下载并编译git
下载、解压
# wget https://www.kernel.org/pub/software/scm/git/git-1.8.3.4.tar.xz # tar xzf git-1.8.3.1.tar.gz |
编译并验证
#cd git-1.8.3.4 # make prefix=/usr/local/git all # make prefix=/usr/local/git install # echo "export PATH=$PATH:/usr/local/git/bin" >>/etc/bashrc # source /etc/bashrc # git --version |
系统管理 --》管理插件 --》Git Plugin
插件安装完毕后,我们需要在jenkins中配置Git的位置
系统管理 --》管理插件 --》Maven Integration plugin(不安装无法新建maven项目)
登录Jenkins,在系统管理->系统设置,设置JDK和Maven的安装路径(需要在服务器安装JDK和Maven)。
3 创建你的第一个新的任务
构建成功的结果:
注:如果出现 java.lang.reflect.InvocationTargetException,请尝试降低maven版本(目前本人使用apache-maven-3.0.5可以成功构建)。
4. 自动远程部署到tomcat
4.1 安装插件
系统管理 --》管理插件 --》Publish Over SSH
系统设置--》 SSH Servers--》增加
注:配置完成可以点击Test Configuration验证配置是否成功。
然后配置项目的SSH发布信息
参数说明:
- Name:系统管理 --> 系统设置 设置的SSH Server的名字列表。
- Source files: 复制到远程机器上的文件,如上图中的 "**/*.war"。
- Remove prefix:文件复制时要过滤的目录
- Remore directory:文件传输到远程机器上的目录,此目录是相对于"SSH Server"中的"Remote director"的,如果不存在将会自动创建。
- Exec command:示例中,只是把构建好的包复制到远程机器上,读者可按需填写在远程机器上执行的shell脚本。
附录:
使用exec-maven-plugin把依赖包打成jar包的形式
<build> |
在pom.xml上右键执行maven install,成功后会把jar包加入到maven本地仓库中以供引用:
Post Steps中的Exec command示例:
kill `netstat -nlp | grep 8088 | awk '{print $7}'|awk -F/ '{print $1}'` rm -rf /usr/local/apache-tomcat-app/webapps/gaosuchuxing-app.war cp -r /root/.jenkins/workspace/YCYL_APP/gaosuchuxing-app/target/gaosuchuxing-app.war /usr/local/apache-tomcat-app/webapps/gaosuchuxing-app.war sh /usr/local/apache-tomcat-app/bin/catalina.sh start tail -f /usr/local/apache-tomcat-app/logs/catalina.out |