Jenkins+SVN+Maven+Sonar自动化部署环境搭建
李栋
2015年12月18日
目录
JENKINS+SVN+MAVEN+SONAR自动化部署环境搭建 .............................................................................................. 1 1
服务器环境 ................................................................................................................................................................................ 2 1.1 1.2 1.3 1.4 1.5 1.6 2
JAVA环境 ............................................................................................................................................................................................... 2 MAVEN环境 ......................................................................................................................................................................................... 2 TOMCAT .................................................................................................................................................................................................. 2 MYSQL ................................................................................................................................................................................................... 2 SONARQUBE ........................................................................................................................................................................................... 2 SONAR RUNNER ..................................................................................................................................................................................... 3
JENKINS环境 ........................................................................................................................................................................... 3 2.1 2.2 2.3
JENKINS安装 ........................................................................................................................................................................................ 3 JENKINS插件 ........................................................................................................................................................................................ 3 JENKINS全局配置 .............................................................................................................................................................................. 4
Maven Configuration ....................................................................................................................................................................... 4 JDK ............................................................................................................................................................................................................ 4 Git .............................................................................................................................................................................................................. 5 SonarQube Runner ............................................................................................................................................................................ 5 Maven ...................................................................................................................................................................................................... 6 Jenkins Location ................................................................................................................................................................................. 6 SonarQube ............................................................................................................................................................................................ 6
2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.3.6 2.3.7 2.3.8 2.3.9 2.4
邮件通知 ............................................................................................................................................................................................... 7
Gitlab(可选) ................................................................................................................................................................................... 7
JENKINS管理JOB ................................................................................................................................................................................ 8
2.4.1 2.4.2
新建Job.................................................................................................................................................................................................. 8 源码管理 ............................................................................................................................................................................................... 8
第 1 页 共 16 页
Jenkins+SVN+Maven+Sonar自动化部署环境搭建 江苏风云科技服务有限公司
2.4.3 2.4.4 2.4.5 3
构建触发器 .......................................................................................................................................................................................... 9
Build ......................................................................................................................................................................................................... 9
发布项目 ............................................................................................................................................................................................ 10
JENKINS构建项目 ................................................................................................................................................................ 13 3.1 3.2
构建项目 ........................................................................................................................................................................................... 13 SONAR报告 ....................................................................................................................................................................................... 15
1 服务器环境
本文档适用于windows下的自动化部署环境搭建。 1.1 Java环境
下载jdk-7u51-windows-x.exe并安装。配置Java环境变量。过程略。 1.2 Maven环境
下载apache-maven-3.3.3.zip并解压缩。配置Maven环境变量。过程略。 在setting.xml中配置repository。 1.3 Tomcat
下载apache-tomcat-7.0.62.zip并解压缩。过程略 1.4 MySQL
下载mysql-server-5.6并安装。过程略。
为sonar创建database。添加用户及权限。过程略。 1.5 SonarQube
第 2 页 共 16 页
Jenkins+SVN+Maven+Sonar自动化部署环境搭建 江苏风云科技服务有限公司
下载SonarQube-5.2.zip,解压并安装。配置SonarQube的环境变量。过程略。 安装过后进入安装后的主目录,进入~/bin/windows-x86-/,双击StartSonar.bat,等app process[search] is up以及app process[web] is up后,在浏览器中输入:http://localhost:9000 ,admin/admin登陆,测试sonarqube是否可以访问。 1.6 Sonar Runner
下载sonar-runner-disk-2.4.zip,解压。配置Sonar Runner的环境变量。过程略。 配置Sonar Runner目录中/conf/sonar-runner.properties。配置指定的Sonar Server地址、数据库URL、数据库用户名及密码、Sonar Server用户名及密码。
2 Jenkins环境
2.1 Jenkins安装
下载jenkins-1.639.zip。解压后安装。安装步骤略。将端口改为8081或其他。 2.2 Jenkins插件
第 3 页 共 16 页
Jenkins+SVN+Maven+Sonar自动化部署环境搭建 江苏风云科技服务有限公司
打开http://172.16.200.188:8081/ 。点击系统管理。右侧如出现新版本升级提示,则点击升级。Jenkins自动升级后会重启。重启完成后,再次进入系统管理页面。点击“管理插件”。可以有选择性的安装插件。推荐插件如下:
Subversion Plugin(svn插件) SonarQube Plugin(Sonar插件) Git Plugin(Git插件) Git Client Plugin Gitlab Hook Plugin
Deploy to container Plugin(自动化部署) Email Extension Plugin 2.3 Jenkins全局配置
进入系统管理,点击右侧的系统设置。 2.3.1 Maven Configuration
配置Maven的setting.xml地址。
2.3.2 JDK
第 4 页 共 16 页
Jenkins+SVN+Maven+Sonar自动化部署环境搭建 江苏风云科技服务有限公司
配置JDK的JAVA_HOME地址
2.3.3 Git
配置Git的git.exe地址。如下:
或者
2.3.4 SonarQube Runner
配置SonarQube Runner的home地址。如下:
第 5 页 共 16 页
Jenkins+SVN+Maven+Sonar自动化部署环境搭建 江苏风云科技服务有限公司
2.3.5 Maven
配置Maven home地址
2.3.6 Jenkins Location
配置Jenkins Location的系统管理员邮件地址
2.3.7 SonarQube
配置SonarQube
第 6 页 共 16 页
Jenkins+SVN+Maven+Sonar自动化部署环境搭建 江苏风云科技服务有限公司
2.3.8 邮件通知
配置邮件通知。此处一定要与Jenkins Location中的系统管理员邮件配置共同设置。
2.3.9 Gitlab(可选)
如果使用Gitlab管理代码,可以在安装Gitlab Plugin后,在此配置Gitlab地址以及API Token。
第 7 页 共 16 页
Jenkins+SVN+Maven+Sonar自动化部署环境搭建 江苏风云科技服务有限公司
API Token获取方式:登陆Gitlab,进入个人的配置页面profile settings,在Account中,复制private token。该登录账号与后续Jenkins集成Gitlab时所用账号要一致。
2.4 Jenkins管理Job
2.4.1 新建Job
打开Jenkins首页,点击新建。Item名称为新建Job的名称。选择Job类型。此处就以“构建一个Maven项目”为例。如图:
2.4.2 源码管理
在源码管理中,选择Subversion(确保Jenkins已安装Subversion Plugin插件)。输入如下信息:
Repository URL:SVN远程仓库地址。
Credentials:点击Add,增加SVN的账户和密码信息后,选择新添加的信息。
第 8 页 共 16 页
Jenkins+SVN+Maven+Sonar自动化部署环境搭建 江苏风云科技服务有限公司
2.4.3 构建触发器
在构建触发器中,配置如下:
Build periodically:H 12,20 * * *。作用是每天12点和20点进行周期性的项目构建(无论代码有没有变化)。
Poll SCM:H/10 * * * *。作用是每隔10分钟根据SCM的版本号进行一次代码检查。如果有更新则checkout新代码,并进行自动构建。
2.4.4 Build
第 9 页 共 16 页
Jenkins+SVN+Maven+Sonar自动化部署环境搭建 江苏风云科技服务有限公司
由于当前项目已经是Maven项目,我们可以直接用Maven命令进行Build操作以及使用sonar:sonar命令进行代码检查。如下。
2.4.5 发布项目
此处给出两种方式。其中两种方式均不是最优方式。第一种非热部署,但是可以保证自动构建正常运行。第二种热部署,但是可能会在多次自动构建后,导致内容溢出等问题(尚未解决该问题,待解决后更新该文档)。因此目前推荐第一种方式。
2.4.5.1 利用Windows命令
利用Windows命令,将tomcat服务停止后,拷贝Jenkins的Jobs中构建好的war包至容器的webapps中,启动tomcat服务。命令如下:
@ECHO OFF
set CATALINA_HOME=D:\\apache-tomcat-7 call \"%CATALINA_HOME%\\bin\\shutdown.bat\" copy
d:\\Jenkins\\jobs\\demo\\workspace\\demo-web\arget\\demo-web-1.0.0-SNAPSHOT.war D:\\apache-tomcat-7\\webapps\\demo-web.war
call \"%CATALINA_HOME%\\bin\\startup.bat\" 如图:
第 10 页 共 16 页
Jenkins+SVN+Maven+Sonar自动化部署环境搭建 江苏风云科技服务有限公司
或者 @ECHO OFF
set CATALINA_BASE=D:\\apache-tomcat-7 set CATALINA_HOME=D:\\apache-tomcat-7 set CATALINA_TMPDIR=D:\\apache-tomcat-7\emp call \"%CATALINA_HOME%\\bin\\shutdown.bat\" copy
D:\\Jenkins\\jobs\ech-service-market-develop\\workspace\ech-service-market-web\arget\ech-service-market-web-1.0.0-SNAPSHOT.war D:\\apache-tomcat-7\\webapps\ech-service-market-web.war
call \"%CATALINA_HOME%\\bin\\startup.bat\" 如图:
2.4.5.2 利用Jenkins插件
第 11 页 共 16 页
Jenkins+SVN+Maven+Sonar自动化部署环境搭建 江苏风云科技服务有限公司
在构建后操作,选择增加Deploy war/ear to a container。配置如下信息: WAR/EAR files:路径为Jenkins/job/demo/workspace的相对路径。 Context Path:项目访问名称
Manaver user name和password:一定要在tomcat/conf/tomcat-users.xml中进行角色、管理员账号、密码等的设置。如:
password=\"tomcat\" roles=\"tomcat,role1,manager-script,manager-status,admin-script,admin-gui,manager-gui\"/> Tomcat URL:Tomcat的首页。 第 12 页 共 16 页 Jenkins+SVN+Maven+Sonar自动化部署环境搭建 江苏风云科技服务有限公司 3 Jenkins构建项目 3.1 构建项目 登陆Jenkins首页,点击所要构建的项目后面的时钟图标。如图: 此时可以看到Jenkins左侧构建执行状态中,正在构建项目。 第 13 页 共 16 页 Jenkins+SVN+Maven+Sonar自动化部署环境搭建 江苏风云科技服务有限公司 点击Job的名称,进入Job管理页面,可以看到项目正在构建的状态。 点击Console Output,可以看到当前构建的控制台输出信息。 看到控制台输出了Finished:SUCCESS,即为构建成功。 第 14 页 共 16 页 Jenkins+SVN+Maven+Sonar自动化部署环境搭建 江苏风云科技服务有限公司 3.2 Sonar报告 管理员账号登陆Sonar首页http://172.16.200.188:9000/ 在右侧可以看到刚刚执行过的代码检查。 进入项目,可以看到详细报告。如图: 第 15 页 共 16 页 Jenkins+SVN+Maven+Sonar自动化部署环境搭建 江苏风云科技服务有限公司 第 16 页 共 16 页 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务