前期准备
1.部署jenkins服务
2.Jenkins 服务器修改gitlab 的域名解析
Liunx修改命令如下:
vi /etc/hosts
192.168.10.248 gitlab.rivamed.cn/
Docker 设置如下
docker exec <容器Id> /bin/sh -c "echo 172.19.12.249 d7739aed6d90 >> /etc/hosts"
为避免重启失效,放入开启启动项:
$ cd /etc/profile.d/
$ vi hosts.sh
//输入命令,保存
docker exec <容器Id> /bin/sh -c "echo 172.19.12.249 d7739aed6d90 >> /etc/hosts"
3.添加自动发送email配置
1下载email插件
通过系统管理→管理插件→可选插件,选择Email Extension,下载指定插件。
2系统配置邮件信息
通过系统管理-系统设置进行email信息设置
3配置邮件发送模板
3.1设置管理邮件地址
3.2设置发件人信息以及邮件模板
通过系统设置中Extended E-mail Notification,对发件人信息进行设置,包括设置邮件服务器格式、默认收件人,邮件模板、触发机制等。
其中邮件内容模板可参照如下模板
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>
</head>
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"
offset="0">
<table width="95%" cellpadding="0" cellspacing="0" style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
<tr>
本邮件由系统自动发出,无需回复!<br/>
各位同事,大家好,以下为${PROJECT_NAME }项目构建信息</br>
<td><font color="#CC0000">构建结果 - ${BUILD_STATUS}</font></td>
</tr>
<tr>
<td><br />
<b><font color="#0B610B">构建信息</font></b>
<hr size="2" width="100%" align="center" /></td>
</tr>
<tr>
<td>
<ul>
<li>项目名称 : ${PROJECT_NAME}</li>
<li>构建编号 : 第${BUILD_NUMBER}次构建</li>
<li>触发原因: ${CAUSE}</li>
<li>构建状态: ${BUILD_STATUS}</li>
<li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
<li>构建 Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>
<li>工作目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>
<li>项目 Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>
</ul>
<h4><font color="#0B610B">失败用例</font></h4>
<hr size="2" width="100%" />
$FAILED_TESTS<br/>
<h4><font color="#0B610B">最近提交(#$SVN_REVISION)</font></h4>
<hr size="2" width="100%" />
<ul>
${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"}
</ul>
详细提交: <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a><br/>
</td>
</tr>
</table>
</body>
</html>
maven使用sonar插件检测提交
- Maven 添加sonarqube 配置信息
在源码pom文件中添加sonar插件
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.8.0.2131</version>
</plugin>
在maven安装目录,conf目录中setting.xml中添加sonarqube的配置信息
<!--添加位置,profiles中添加sonar的配置信息 -->
<profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!--sonarqube地址 -->
<sonar.host.url>http://192.168.111.59:9000/</sonar.host.url>
<!-- sonarqube登录账号 -->
<sonar.login>admin</sonar.login>
<!-- sonarqube 登录密码 -->
<sonar.password>Aa123456</sonar.password>
</properties>
</profile>
<profiles>
- 构建工程
点击新建任务-构建一个自由风格项目
![在这里插入图片描述](https://img-blog.csdnimg.cn/a62d4d52c2454e8d8c1ba8a8e54dc59d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAUG91bERhaQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
- 点击配置,对工程项目进行配置
- 进行git源码绑定
- 构建触发机制
注意:定时构建和轮询SCM的区别
相同点:定时构建和轮询SCM都是按时间轮询触发。
不同点:轮询SCM构建时会对比git源码是否有变化,若不存在变化,不进行构建,定时构建则不会判断git源码是否有变化,直接构建。 - 进行构建操作
构建时选择maven构建,并输入构建命令
dependency:purge-local-repository clean compile sonar:sonar
注意:dependency:purge-local-repository 是为了删除本地依赖,防止存在依赖缓存
- 构建完成后发送email
在构建后操作选择Enable Email Eotification,设置邮件推送
具体设置详情如下
使用外部插件sonar scanner 进行检测提交
- Jenkins 安装sonar scanner 插件
通过系统管理→管理插件→可选插件,搜索选择sonar scanner,下载指定插件。
- 系统配置sonar信息
在系统管理-全局工具配置中配置sonarcanner工具
通过系统管理-系统设置进行sonarqube数据信息设置
Sonarqube获取token可以在sonarqube个人中心获取,如下:
- 构建自动化工程
构建自动化工程与maven构建步骤基本一致,只需要在构建时注意添加sonar扫描配置
配置信息描述如下
#sonar项目key值
sonar.projectKey=cn.rivamed.spd:spd-bdm
#sonar项目名称
sonar.projectName=cn.rivamed.spd:spd-bdm
#sonar项目源码类型
sonar.language=java
#javajdk版本
sonar.java.source=1.8
# sornar登录账号
sonar.login=admin
# sornar登录密码
sonar.password=123456
#源码路径
sonar.sources=$WORKSPACE
#源码字节流路径
sonar.java.binaries=$WORKSPACE