前言写这篇博客的缘由是最近公司有个非标项目,所谓的非标从是SAAS项目拉取一个分支给客户定制单独的功能,客户也要求单独部署。就开始折腾一下jenkins,总结好后分享给大家。原创不易,关注一下呗一、mac安装jenkins1.Sample commands:Install the latest LTS version: brew install jenkins-ltsInstall a specific LTS version: brew install jenkins-lts@YOUR_VERSIONStart the Jenkins service: brew services start jenkins-ltsRestart the Jenkins service: brew services restart jenkins-ltsUpdate the Jenkins version: brew upgrade jenkins-lts2.初始密码所在位子3.直接安装推荐插件即可4.其他必要插件安装几个必要插件 Manage->jenkins->Manage Plugins,安装完毕后一定要重启jenkins才能生效,重启只需要在地址后面加上restart即可,如:http://localhost:8080/restartPublish Over SSH 用于远程服务器配置发布promoted builds 用于构建后发布服务器控制Git parameter 构建时实现参数选择分支或Tag。5.本地地址http://localhost:8080/账号:jenkins密码:jenkins登入进入主页到此jenkins安装完毕二、新建Springboot项目我们这新建一个简单的spingboot项目,引入mybatis-plus做个数据插入功能实体类Storagepackage com.example.demo.entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Storage {
private Long id;
private Long commodityCode;
private Integer count;
}Mapper@Mapper
public interface StorageMapper extends BaseMapper<Storage> {
}控制器StorageController@RestController
@Slf4j
public class StorageController {
@Resource
private StorageMapper storageMapper;
@GetMapping("/insert")
public int insert(){
Storage storage = Storage.builder()
.commodityCode(new Random().nextLong()).count(1).build();
int insert = storageMapper.insert(storage);
log.info("插入行数为:{}",insert);
return insert;
}
}application.ymlserver:
port: 10001
spring:
application:
name: storage-service
datasource:
url: jdbc:mysql://localhost:3306/db_storage?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=UTC
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 123456
logging:
level:
com.example.demo: debug将这个项目上传的gitee,可以得到项目地址https://gitee.com/youthcool/test.git,这个连接待会需要用三、部署springboot项目1、我这里准备了两台云服务器,我们现将他们配置到jenkins2、找到Publish over SSH,添加对应的服务器3、创建一个新任务4、选择自由风格的软件项目5、General勾选Promote builds when4、Actions选择Send build artifacts over SSH,一台机器对应一个promotion process,如果是多台机器再增加一个promotion process配置即可,我这配置了两台4、Send build artifacts over SSH,分为下面几个部分SSH Server Name(下面第五点会说)TransfersTransfer Set Source files **/* 表示{projectName}这个job的工作目录下所有的文件和目录。Remove prefix 该操作是针对上面的source files目录,会移除匹配的目录。Remote directory 该操作是基于设定的服务器目录进行。Exec command 远程服务器执行的命令。例如可以输出 service jenkins restart 或者 /home/xx. sh 均可。4.1、Transfer Set Source files这个地方配置不好会出现,SSH: Transferred 0 file(s)错误。意思是没有将构建好的jar发送对应的服务器。那如何配置呢?首先jenkins有一个工作目录,我这里是http://localhost:8080/job/test_project/ws/,而我们构建出的jar在target文件下面。所以Transfer Set Source files这里配置成target/*.jar,Remove prefix配置成target/。Remote directory 这个目录可以不填,默认是在系统配置那的全局配置,注意:如果这里也配置了会与全局配置路径叠加起来。最后Exec command这个没有什么讲的,就是写一段启动jar的脚本,我这在网上随便摘抄了一段。文章最后也会分享一个常用的启动脚本5、SSH Server Name这会显示我们先前在系统配置那添加的服务器别名,这里是coleman,tom两台服务器6、配置Exec command5、参数化构建过程,选择git参数。git参数名称配置成branch,后面需要获取这个参数的值6、源码管理7、构建、构件后操作配置至此全部配置完毕四、构建发布项目1、拉取git代码,选择对应分支打包2、点击开始构建,可以在build history看到所有的构建历史3、选择要发布的版本,我这打开序号为16的4、点击Promotion Status,可以看到下面按钮5、点击force promotion发布这里随便点击一个按钮即可,两台服务器都会启动这个jar包点击#23进入可以看到控制台输出,最终显示成功6、查看两台服务器日志,成功启动
本文出自快速备案,转载时请注明出处及相应链接。