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

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

时间:2022-12-21 17:25:13浏览次数:66  
标签:插件 等拉取 jdk Gitee maven 构建 Jenkins jenkins 安装

场景

CentOS中使用Docker安装Jenkins:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119911722

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

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

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

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108465662

注:

博客:
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: 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 [email protected]...."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

 

 

标签:插件,等拉取,jdk,Gitee,maven,构建,Jenkins,jenkins,安装
From: https://www.cnblogs.com/badaoliumangqizhi/p/16996680.html

相关文章

  • JDK源码之CompletableFuture(三)anyOf,allOf是怎么实现的?
    ​​JDK源码之CompletableFuture(一)结果返回原理​​JDK源码之CompletableFuture(二)链式调用原理JDK源码之CompletableFuture(三)anyOf,allOf是怎么实现的?目录​​一、全部返回......
  • ConcurrentHashMap源码解析(JDK8)
    并发编程实践中,ConcurrentHashMap是一个经常被使用的数据结构,相比于Hashtable以及Collections.synchronizedMap(),ConcurrentHashMap在线程安全的基础上提供了更好的写并发能......
  • 使用 Maven 构建 Java 项目
    本指南将引导您使用Maven构建一个简单的Java项目。您将构建的内容您将创建一个提供一天中的时间的应用程序,然后使用Maven构建它。你需要什么约15分钟最喜欢的文本编辑......
  • Maven 安装和配置方法详解
    通常一个Java项目会引用大量的jar包,而jar包之间可能存在各种依赖关系,如果运行Java项目时仅使用classpath参数来管理jar包会非常不方便,此外,在项目编译、打包、升级、发......
  • JDK的下载与安装配置
    一、下载JDK 在 Oracle官网下载符合操作系统版本的JDK 1、选择相对应的系统版本,我这里选择使用安装包的方式 2、双击打开下载好的msi文件,进行安装 3、选择......
  • JDK源码之CompletableFuture(二)链式调用原理
    ​​JDK源码之CompletableFuture(一)结果返回原理​​JDK源码之CompletableFuture(二)链式调用原理JDK源码之CompletableFuture(三)anyOf,allOf是怎么实现的?目录​​一、第一步调......
  • Maven
    Maven介绍Maven官方文档是这样介绍的Maven的:ApacheMavenisasoftwareprojectmanagementandcomprehensiontool.Basedontheconceptofaprojectobject......
  • XAMPP里tomcat启动报错:Make sure you have Java JDK or JRE installed and the requir
    ​​参考博客​​**1.运行命令行win+R在cmd中输入regedit出现下面的界面**2.在注册表中添加HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft/JavaDevelopmentKit3.成功界......
  • Java 特性、三大版本、JDK、JRE、JVM
    Java的特性 简单性面向对象可移植性writeonce,runanywhere高性能分布式动态性通过反射机制多线程安全性异常机制健壮性 *思考?j......
  • JDK、JRE、JVM三者之间的关系?
     JDK安装目录下有一个【jre】目录(bin->【jvm】,lib->jvm工作所需类库)JVM体系结构与运行原理 JDK基础概念及目录结构JDK指的就是Java开发工具包。我们依靠JDK开发和......