赞
踩
最近学习尚硅谷Jenkins视频,视频是使用svn作为版本控制,工作中用的是GitLab,并且工作中项目是微服务架构,需要同时添加多个git项目,所以想以git实验一下,完成后写了这个记录下来,写了第一篇博客,以备后用。
通过Jenkins+GitLab实现Maven多项目自动打包部署
在CentOS安装GitLab ,参考文章如下:
https://blog.csdn.net/duyusean/article/details/80011540
在Windows10部署用tomcat8启动jenkins.war,据说可以使用命令启动
编写工程名为hello的SpringBoot程序 并上传到GitLab 访问路径为:http://192.168.101.200:9090/hello
hello项目gitLab地址:git@192.168.101.200:group/hello.git Controller代码: package com.example.hello; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @EnableAutoConfiguration public class TestController { @RequestMapping("/hello")//HTTP请求 public String test() { System.out.println("TestController>>>test>>>is running....return a string"); return "HelloWorld!"; } }
编写工程名为jenkins的Maven工程 、start、support子工程分别上传到GitLab ,jenkins工程pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<packaging>pom</packaging>
<modules>
<module>support</module>
<module>start</module>
</modules>
<groupId>com.xxx</groupId>
<artifactId>jenkins</artifactId>
<version>1.0-SNAPSHOT</version>
</project>
hello项目gitLab地址:git@192.168.101.200:group/jenkins.git
start项目gitLab地址:git@192.168.101.200:group/start.git
support项目gitLab地址:git@192.168.101.200:group/support.git
Jenkins基础配置
初次启动会出现此页面,根据红色提示的路径,拷贝文件initialAdminPassword中的一段字符串
进入系统管理—》全局安全配置
进入系统管理—》插件管理 在线安装Gitlab Authentication plugin 、Gitlab Hook Plugin、GitLab Plugin、Build Authorization Token Root Plugin、Multiple SCMs plugin(配置多个git地址)、Publish Over SSH
进入系统管理—》系统设置 配置Jenkins Location下的Jenkins URL http://192.168.101.174:8888/jenkins/
进入系统管理—》全局工具配置 需要配置Maven 配置、JDK、Git、Maven
任务配置
新建任务–》HELLO 选择一个“构建一个自由风格的软件项目”
源码管理
构建触发器
构建
GitLab 配置hello项目
GitLab最新版本需要修改Outbound requests才可以使用钩子程序
GitLab配置git Push代码触发hello项目钩子程序
填写enkins生成的URL和Token
添加webHook后,点击【Test】下的Push events 进行触发测试
测试成功,触发Jenkins的HELLO项目的构建
进入Jenkins界面,可以看见HELLO项目正在构建,可以点击“#数字”下面选择控制台输出查看构建过程,构建成功后,就可以通过浏览器访问http://192.168.101.200:9090/hello 输出"HelloWorld!" 即为部署成功!
GitLab 配置jenkins项目
新建项目
源码管理,配置maven父工程jenkins的git地址及认证,认证同hello项目,父工程不用配置jar路径
源码管理,配置maven子工程support的git地址及认证,认证同hello项目,子工程需要配置子目录,子目录名称与工程名一致,否则从GitLab上取代码是生成的项目结构不正确,导致maven打包失败。
源码管理,配置maven子工程start的git地址及认证,认证同hello项目
构建触发器 父工程和两个子工程都用相同的URL和Token配置到GitLab上的各个项目的钩子调用
构建 使用Maven打包,跳过测试
构建后操作 写shell脚本 多个工程启动工程需要配置多个Transfer Set ,脚本的主要环节为停掉现有服务、备份原jar包、拷贝新jar文件。
GitLab配置Jenkins父工程的钩子
GitLab配置start子工程的钩子
GitLab配置support工程的钩子
测试配置同hello
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。