Docker+Jenkins+Gitee+Maven项目配置jdk、maven、gitee等拉取代码并自动构建以及遇到的那些坑

news2024/11/20 13:36:37

场景

CentOS中使用Docker安装Jenkins:

CentOS中使用Docker安装Jenkins_霸道流氓气质的博客-CSDN博客_centos docker jenkins

在上面使用Docker部署起来Jenkins的基础上,怎样拉取SpringBoot项目代码并编译构建。

后台项目的搭建参考如下。

若依前后端分离版本地搭建开发环境并运行项目的教程:

若依前后端分离版手把手教你本地搭建环境并运行项目_霸道流氓气质的博客-CSDN博客_前后端分离的项目怎么运行

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi 

实现

1、参考上面安装Jenkins的过程,在服务器上新建jenkins的数据卷映射目录,并赋予权限。

chmod 777 -R ./jenkinsworkspace/

这里启动容器时使用6060端口映射,并指定容器名jenkinsForShow

docker run -d --name jenkinsForShow -p 6060:8080 -v /home/badao/jenkinsworkspace:/var/jenkins_home jenkins/jenkins:latest

2、在安装jenkins选择推荐的插件安装

 

除此之外还需要其他插件的在DashBoard-插件管理-可选插件里面搜索

Maven Integration Maven插件

 

这里需要拉取gitee的代码,所以还需安装Gitee插件

 

一般构建完jar包之后还需通过ssh发布到服务器上,所以Publish Over SSH这个插件根据自己的

需要安装。

 

3、配置Maven

Dashboard-Global Tool Configuration-Maven

这里选择自动安装-从Apache安装。这里Maven选择自动安装的话可以不需任何登录操作,也可指定

需要的版本,且对maven的仓库源等其他设置没有特殊要求,所以直接选择从Apache自动安装。

 

除了maven之外,jdk是jenkins自带的,但是如果版本与项目不对应则需配置,见下面踩坑记录。

4、配置Gitee

Dashboard-Manage Jenkins-Configure System-Gitee配置

Gitee链接名:代码仓库地址

Gitee域名URL:

Gitee - 基于 Git 的代码托管和研发协作平台

https://gitee.com/

证书令牌-添加-添加凭据

全局凭据、GiteeAPI令牌

然后需要输入Gitee APIV5 私人令牌

 

Gitee APIV5 私人令牌生成:

登录Gitee -个人中心-私人令牌-新增-选择权限-提交

 

踩坑:

Docker+Jenkins+Gitee配置Gitee API令牌时测试连接一直ERROR

 

点击测试连接时提示ERROR 处理当前请求时发生了错误。

然后查看jenkins容器的日志

docker logs jenkinsForShow

提示:

Illegal character in scheme name at index 0: https://gitee.com/api/v5/user

 

这是因为一些教程中说这里链接名随便起,所以随便起了个链接名,直到把其修改为仓库地址之后

可以了。再测试链接时提示成功。

 

5、新建构建任务-源码管理

新建Item-构建一个maven项目-源码管理-Git

这里需要使Jenkins从Gitee上拉取代码了,需要代码凭证。除了使用Gitee的账号等方式,这里使用.ssh公钥私钥的方式。

Docker部署的Jenkins生成ssh公钥私钥使其连接到Gitee时需要注意,这里又一个踩坑。

需要在Jenkins容器内生成ssh,而不是在宿主机服务器上生成。

进入容器

docker exec -it jenkinsForShow /bin/bash

然后注意这里另外一个踩坑:

Docker部署的Jenkins生成ssh公钥私钥时不在root目录下,会提示cd:/root:Permission denied

 

所以进入容器后需要进入到/var/jenkins_home目录下

cd /var/jenkins_home/

此时再生成ssh

ssh-keygen -t rsa

然后一路回车,最终在此目录下生成对应私钥公钥。

 

然后将公钥添加到gitee中,将私钥添加到jenkins上新建的任务的源码管理-凭证-新建凭证-凭证类型

-SSH Username with private key-Private Key-Enter directly

 

此时又一个踩坑:

jenkins源码管理-凭证为ssh时提示:

无法连接仓库:Command "git ls -remote -h --git@gitee.com...."returned status code 128:

stdout:

stderr:No ECDSA host key is known for gitee.com and you have requested strict checking.Host key verification failed.

fatal:Could not read from remote repository.

Please make sure you have the correct access rights

and the repository exists.

 

在jenkins中,Dashboard-Configure Global Seurity下

Git Host Key Verification Configuration

选择No verification

 

此时源码管理中git地址配置不再报错

 

6、配置构建Build

注意这里如果代码仓库中后台代码不是在根目录下,即pom.xml不在代码仓库根目录下,则需要配置

和更改Root POM。比如这里后台代码在仓库根目录下Server目录下,所以修改Root POM为

Server/pom.xml

然后设置Goals and options为

clean package -DskipTests

 

如果pom文件配置的不对,则会在构建时提示:

No such file /var/jenkins_home/workspace/任务名/pom.xml

 

如果代码仓库直接就是后台代码,即pom.xml在根目录下,则直接配置为pom.xml即可。

7、配置指定版本jdk

如果项目需要jdk1.8或者有指定版本要求,那么自带的jdk则不能满足要求,那么在构建时就会提示:

Failed to execute goal org.apache.maven.plugin:maven-compiler:...:compile(default-compile) on project ...Compilation failure

 

在Dashboark-系统管理-全局工具配置中找到jdk-自动安装-jdk安装-新增jdk-新增安装

注意jdk的安装方式,如果是从java.sun.com安装,需要配置oracle的账户密码;如果是选择OpenJDK install安装时

构建时会提示

Node Jenkins doesn't seem to be running on RedHat-like distro

 

这里选择其他安装插件的方式,首先需要在插件管理中搜索插件

Eclipse Temurin install Plugin

 

安装完之后再上面jdk的安装方式中就会多一个选项叫Install from adoptium.net

 

选择这个选项,选择自己需要的版本,首次构建时会从github下载,受网络影响可能会超时,多次构建即可。

这里使用jdk1.8选择jdk8u332-b09速度还是可以的。

8、以上配置完成后进行构建

点击任务-立即构建-点击左下角的构建历史,选择最上面的一个点击,控制台输出,首次会看到maven下载依赖

 

等待一会显示构建成功

 

此时到服务器上映射路径下即可找到构建成功的jar包

这里是在/home/badao/jenkinsworkspace/workspace/fzys_show_server_maven/Server/ruoyi-admin/target

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/106444.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenFeign AutoConfiguration源码解析

本文约2千字,主要知识 OpenFeign的父子容器FeignClient的注册 背景 在使用Spring Cloud时,经常使用OpenFeign 作为远程服务调用的类库;Feign 是一种声明式服务调用组件,它在 RestTemplate 的基础上做了进一步的封装。通过 Feig…

跨平台应用开发进阶(五十)uni-app ios web-view嵌套H5项目白屏问题分析及解决

文章目录一、前言二、问题分析三、解决方案3.1 nvue 页面替代 vue 页面3.2 白屏检测刷新3.2.1 自动刷新3.2.2 手动刷新3.3 总结四、拓展阅读一、前言 应用uni-app框架开发好APP上架使用过程中,发现应用经过长时间由后台切换至前台时,通过webview方式嵌套…

SQL语句(基本)

SELECT 语句的 执行过程: from clause ---> where clause ---> select --->group by ---> having--->order by ---> limit 写法顺序: select col1,... from clause ---> where clause ---> group by ---> having---> order by --->…

“ 请你要发光 而不是被照亮 “

做一个厉害的大人 勇敢地长大 成为会发光的星星 勇音频:00:0003:41 | 01 | 世界不会辜负努力拼搏的人 光明的前途在乌云散去之后 请你一定一定坚持自己 勿忘初心 要做会发光的星星 成为想成为的大人啊 | 02 | 我牵起你的手 你望向我的眼 少了你的懵懂青涩…

总线一:IIC

一、I2C集成电路总线, 多用于主控制器和从器件间的主从通信。 二、适用场景:在小数据量场合使用,传输距离短。 三、IIC是半双工。IIC的物理层:两条总线线路,一条是串行数据线SDA,一条是串行时钟线SCL,当总…

《Python知识手册》更新到V4.1版,快拿走学习

前言 最近,我花了点时间,把《Python知识手册》的部分内容进行了更新,更新后的版本号为 v4.1 版。 python知识手册内容:《Python知识手册》 没有比较完整的覆盖 Python 的基础知识。因此,针对手册的阅读,各…

程序员年底好找工作吗?

到年底了除非必要不要辞职!除非必要不要辞职!除非必要不要辞职! 重要的事情说三遍。 很多老哥问我:工作干不下去了,这会儿辞职找工作合适吗?今天就来为大家解答一下,为什么不要在年底辞职&…

Redis6入门到实战------ 六、Redis_Jedis_测试

1 Jedis所需要的jar包 在pom文件中引入依赖 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.2.0</version> </dependency>2 连接Redis注意事项 禁用Linux的防火墙&#xff1a;L…

Linux mybash

shell 在了解bash之前 我们要先了解shell Shell 是一个用 C 语言编写的程序&#xff0c;它是用户使用 Linux 的桥梁。Shell 既是一种命令语言&#xff0c;又是一种程序设计语言。 Shell 是指一种应用程序&#xff0c;这个应用程序提供了一个界面&#xff0c;用户通过这个界面…

NoSQL数据库原理与应用综合项目——Neo4j篇

NoSQL数据库原理与应用综合项目——Neo4j篇 文章目录NoSQL数据库原理与应用综合项目——Neo4j篇0、 写在前面1、本地数据或HDFS数据导入到Neo4j2、Neo4j数据库表操作2.1 使用Python连接Neo4j2.2 查询数据2.3 插入数据2.4 修改数据2.5 删除数据3、Windows远程连接Neo4j(Linux)4、…

uboot源码下载以及编译

环境&#xff1a;ubuntu 20.04 uboot源码下载以及编译1 uboot源码下载&#xff1a;1.1 进入uboot官网1.2 下载源码2 编译uboot2.1 配置2.2 编译2.2.1 确认编译工具链是否ok2.2.2 配置环境变量2.2.3 编译3 注意事项3.1 uboot 2022.04版本问题3.2 unable to execute swig: No suc…

分代收集算法

将这个堆内存划分成两块&#xff1a;新生代和老年代&#xff0c;刚刚创建的对象都在新生代&#xff0c;长久存活的对象都在老年代&#xff08;老年代的垃圾回收很久发生一次&#xff0c;新生代的垃圾回收发生的比较频繁&#xff09; 新生代又进一步划分成伊甸园Eden&#xff0…

docker安装gitlab(超级详细)

前提&#xff1a; 在操作之前需要安装docker和docker-compose 拉取镜像 docker pull gitlab/gitlab-ce:15.2.4-ce.0 创建本地文件夹 mkdir /data/docker/gitlab/etc mkdir /data/docker/gitlab/logs mkdir /data/docker/gitlab/data 编写 docker-compose.yml cd /data/docker/…

面试高频题目,每周更新。

1.如何实现一个div快速的居中对齐&#xff1f; 2.margin和padding有什么不同&#xff1f; 作用对象不同&#xff0c;margin是针对对外部对象&#xff0c;padding是针对于自身。 3.vw和百分比有什么区别&#xff1f; 百分比是有继承的&#xff0c;父级元素改变后&#xff0c;会…

删除的照片如何恢复? 5个照片恢复方法总结

有人说&#xff0c;照片承载着很多回忆&#xff0c;一些难忘的时刻&#xff0c;还有一些经历。这就是我们不能丢失它们的原因&#xff0c;如果偶然丢失它们&#xff0c;到目前为止还没有可靠的设备。但是&#xff0c;如果您丢失了一些照片并想找回它们&#xff0c;请不要担心&a…

MySQL集群解决方案(4):负载均衡

在前面架构中&#xff0c;虽然对mycat做了集群&#xff0c;保障了mycat的可靠性&#xff0c;但是&#xff0c;应用程序需要连接到多个mycat&#xff0c;显然不是很友好的&#xff0c;也就是说缺少负载均衡的组件&#xff0c;接下来我们来了解下HAProxy。 1 简介 官网&#xff…

Nacos安装-单机安装

目录 一、环境介绍 二、安装方式 三、部署模式 四、单机模式包部署 4.1 下载到对应地址 4.2 解压缩包 4.3 单机模式支持mysql 导入初始化SQL 修改配置文件 4.4. 单机模式启动nacos 启动成功 登录 一、环境介绍 操作系统&#xff1a;Ubuntu 20.04.1JDK&#xff1a;保证…

HaaS EDU物联网项目实战:老板来了

HaaS EDU K1是一款高颜值、高性能、高集成度的物联网开发板&#xff0c;板载功能强大的4核&#xff08;双核300Mhz M33双核1GHz A7&#xff09;主芯片&#xff0c;2.4G/5G双频Wi-Fi&#xff0c;双模蓝牙&#xff08;经典蓝牙/BLE&#xff09;&#xff0c;并自带丰富的传感器与小…

2023 年的 7 个技术趋势——人工智能与企业内容管理相结合,云成为企业 IT 标准, 数据民主化······

2023 年的 7 个技术趋势 技术的发展速度比以往任何时候都快。高通胀、供应链问题和技术工人短缺等经济因素给当今的企业带来了巨大的压力。艰难的经济环境促使公司重新评估其财务战略&#xff0c;并寻找保持利润率的方法&#xff0c;同时培养对不断变化的经济状况做出快速反应…

又一款AR HUD前装量产上车!这家供应商深耕HUD行业8年

12月15日晚&#xff0c;岚图汽车首款轿车——岚图追光正式首发亮相并开启预售。预售价分别为32.29万元、35.29万元、43.29万元。 作为岚图汽车首个搭载ESSASOA智能电动仿生体的量产车型&#xff0c;领先的技术架构保证岚图追光在性能、智能、豪华、安全等各维度的表现都达到同级…