一、在服务器上安装git、maven、jdk1.8

二、安装gitlab,并上传可以打成war包的代码,不知道怎么安装的请参看:centos7安装gitlab

三、安装jenkins,安装:Centos7安装Jenkins

四、配置jenkins

4.1 安装插件

系统管理-插件管理

在可选安装中搜索:

所有的安装完成后重新启动 Jenkins。

 4.2 全局配置jdk、git、maven

 系统管理-全局工具配置

jdk:

git:

maven:

4.3 配置系统设置

系统管理-系统设置

 4.3.1 maven设置(资源库,编译命令参数等设置)

4.3.2 gitlab API-token设置(调用gitlab提供的API时需要传token验证)

连接名称自己取,填入gitlab主机url

此时需要设置凭据

API-token从gitlab获取:

登录gitlab,点击setting:

在jenkins凭据页面填入生成的token。ID可以不填。点击Test Connection 显示 Success则配置成功。

4.3.3 邮件服务器配置

 测试邮件配置是否正确:

此时jenkins的基本配置已经完成。

五、构建任务

5.1 gitlab资源库配置

此时需要配置访问gitlab获取代码的账号密码,使用ssh-key的方式来设置。key的生成不做赘述。

gitlab setting中粘入公钥:

私钥粘入jenkins凭据:

如图:

ID不用录入。

5.2 构建触发器

点击高级,生成secret token:

这个token在gitlab填入后用来出发push event。

选择要自动部署的项目:

URL为构建触发器时显示的:

,填入jenkins生成的token。

保存并测试。

5.3 预编译配置

5.4 构建结果邮件通知

5.5 构建后部署tomcat

这里因为我已经配置了tomcat,所以显示的时不可用。

此时需要配置tomcat的用户凭据。

服务器上安装tomcat-8.5.9,安装不做赘述。

vim /usr/local/apache-tomcat-8.5.39/conf/tomcat-users.xml

修改tomcat-users.xml,加入以下内容: 


 <role rolename="manager-gui" />
 <role rolename="manager-status" />
 <role rolename="manager-jmx" />
 <role rolename="manager-script"/>
 <role rolename="admin-gui"/>
 <role rolename="admin-script"/>

 <user username="tomcat" password="tomcat" roles="manager-gui,manager-status,manager-jmx,manager-script,admin-gui,admin-script"/>

如下图所示: 

 修改context.xml注释Value标签:

vim /usr/local/apache-tomcat-8.5.39/webapps/manager/META-INF/context.xml 

重启tomcat。

六、测试

本地开发往gitlab push代码,或者jenkins首页触发。

查看构建日志:

显示编译、打包、部署成功。

查看服务器上webapps目录:

可以看到war已经自动上传到webapps目录下。

postman测试接口:

至此,整个持续集成流程走完。

七、异常记录

1.

分析:jenkins集成的maven资源库目录默认为:/var/lib/jenkins/.m2/repository。pom中需要的依赖无法下载

解决:上传本地的maven资源到/var/lib/jenkins/.m2/repository中。

2.解决:

cd  /var/lib/jenkins  

chmod -R 777 *

3.  

解决:详见5.5小节修改tomcat-users.xml和context.xml。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐