社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
我们随便创建一个SpringBoot的web项目,进行jenkins的测试.

在本项目中配置了.gitignore忽略文件,把不必要的文件忽略掉,不用往git仓库中进行代码提交.
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.12.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<encoding>UTF-8</encoding>
<java.version>1.8</java.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<!--web启动器是与SpringMVC相关的依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<target>${java.version}</target>
<source>${java.version}</source>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
package com.syc.jenkins.web;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/show")
public String showInfo() {
return "hello,this is jenkins demo";
}
@GetMapping("/hello")
public String sayHello() {
return "hello....";
}
@GetMapping("/new")
public String newFeature() {
return "new feature...";
}
}

可以在本地运行启动一下该项目,简单进行测试,没问题就可以上传代码到git仓库中.
在gitlab中创建一个新项目,用作代码仓库.

然后把第一步中创建好的项目提交到Gitlab的仓库中.
具体过程略,提交代码的过程请参考本人的Git教程.
https://blog.csdn.net/syc000666/article/details/100921595
在"Jenkins"管理中进行"系统设置".

添加Jenkins配置.

选择Gitlab API token选项.

填写Gitlab中的Access Token内容.

可以去Gitlab中,选择自己的用户的头像,选择"Settings",然后选择"Access Tokens".

然后可以点击"Test Connection",如果出现Success则表示Jenkins与Gitlab连接成功.


配置和项⽬相关的内容,如源码,编译⽅式等.

继续向下拉

选择选择 maven maven 版本和执⾏的命令.

保存一下.


查看控制台,第⼀次可能会有⼤量的下载依赖包的过程,直到最后构建成功.

进⼊Linux服务器中的/var/lib/jenkins/workspace/⽬录下,
可以看到以当前jenkins任务名字命名的⽬录,在⾥⾯就是我们的maven 项⽬项⽬.在target⽬录中可以找到我们编译后的jar包⽂件.
在实际开发中,我们的CI(持续集成)⼀天内可能会有很多次,但是我们的CD(持续交付)在⼀段时间内可能只会有⼀次.
所以一般只有我们在发布版本的时候才会有CD,为了区分我们的版本,可以在git中使⽤ tag 来区分. 我
们每次发布之前先对代码添加 tag,这样我们就可以选择对应的 tag 来进⾏发布. jenkins可以通过读取我们的 gitlab 的 tag,进而让我们选择对应的tag,而要读取这个 tag 我们需
要⼀个插件.

添加参数化构建,和构建后发布到的远程服务器.


添加⼀个构建步骤,选择shell.


echo $Tag
cd /var/lib/jenkins/workspace/myjinkins/
git checkout $Tag
git pull origin $Tag
/usr/local/apache-maven-3.6.3/bin/mvn clean package
因为使⽤了tag,所以需要重新切换tag,然后更新代码.

配置发布参数

参考脚本
#!/bin/bash
cp /var/lib/jenkins/workspace/myjinkins/target/*.jar /usr/local/jenkins-target/
cd /usr/local/jenkins-target
nohup java -jar ./*.jar &
echo 返回值: $?
sleep 1
最后保存即可.



选择对应的版本后进⾏构建,进⼊本次构建的控制台.
最终看到构建结果.

打开浏览器,访问自己的项目地址,10.60.14.63:8080

可以看到我们的项目接口内容成功展示出来.
修改我们的项目代码,然后提交到Gitlab. 但是注意,此时我们之前的1.0 tag 中并没有我们
最新的内容, 作为新版本发布,我们需要新建⼀个 tag,然后选择新 tag 发布,此处略过提交代码和新建 tag 的过程. 我们新建了⼀个2.0tag,然后重新构建,发现发现2.0 2.0已经⾃动出现了.

构建完成重新在浏览器中访问服务器.

当我们最新发布的版本出现问题的时候,可以重新选择低版本的tag发布,可以快速降,此处就不演示了.
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!