jenkins实现以gitlab为代码仓库的构建
-
简介
前一篇随笔是安装jenkins的过程,比较简单,这一次说一下用jenkins配置以gitlab为代码管理仓库的maven项目的完整个构建过程,以及我碰到的一些问题。
由于是maven项目,所以我们的linux系统还要安装maven,当然还有jdk -
软件安装
1、jdk
我安装的centos预安装了openjdk,这里我想用自己配置的jdk,在官网下了个1.8的,用Xftp工具把tar.gz文件拷贝到linux系统上,我是放在/usr/jdk下面,具体步骤如下
#解压缩 tar -zxvf jdk-8u201-linux-x64 .tar.gz //后面的是具体的压缩包名,以实际为准 #配置环境变量 vi /etc/profile #在文件末尾添加一下内容 export JAVA_HOME=/usr/jdk/jdk1.8.0_201 //路径以实际为准 export JRE_HOME=${JAVA_HOME}/jre //路径以实际为准 export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH export PATH=${JAVA_HOME}/bin:$PATH
安装完后运行java -version查看jdk版本,出现如下表示jdk配置成功
2、安装maven
官网下载maven3的压缩包,拷贝至linux解压缩,配置环境变量#解压缩 tar -zxvf apache-maven-3.1.1-bin.tar.gz //后面的是具体的压缩包名,以实际为准 #配置环境变量 vi /etc/profile #在文件末尾添加一下内容 export M2_HOME=/usr/maven/apache-maven-3.1.1 export PATH=${JAVA_HOME}/bin:${M2_HOME}/bin:$PATH //path路径在原有jdk的基础上添加maven
安装完之后运行mvn -version查看版本,如下表示maven配置成功
修改maven配置//指定本地仓库地址 <localRepository>/usr/repository</localRepository> //配置阿里云镜像,以防中央仓库下载缓慢 <mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors>
3、jenkins安装
jenkins安装我在前一篇有安装讲解 -
配置jenkins
安装gitlab插件,登陆jenkins进入系统管理 -->插件管理,选择可选插件,搜索gitlab,选择安装Gitlab Hook Plugin、GitLab Plugin、Gitlab Authentication plugin,点击直接安装
安装ssh插件,在插件管理搜索Publish Over SSH,点击直接安装
工具配置,配置jdk和maven
进入系统管理 -->全局工具配置
配置全局路径
进入系统管理 --> 系统设置,设置gitlab连接这里的token是gitlab用户的电子令牌,点击添加,选择token,ID自己定义一个
gitlab生成电子令牌过程
我这里是汉化版,点击设置(setting),弹出用户设置页面,选择左侧的访问令牌(access tokens),按下面填写,最后生成一个token
配置publish over ssh,这是用来jenkins构建项目之后通过ssh发送war包到实际的应用运行环境
到这里就大致配置好了。 -
新建项目进行构建
-
新建任务
选择之前配置的gitlab仓库连接配置项目地址
添加构建
选择执行shell脚本的方式构建项目编写shell脚本
增加构建步骤,用来构建完成之后将编译好的文件通过ssh方式pulish到远程运行环境,我这里是本地的配置构建之后远程发布的配置
保存操作,配置完成。
-
构建
点击任务进入任务,点击立即构建,在下面的构建历史选择控制台输出,查看控制台信息
编译成功。
-
问题
通过shell脚本编译的时候会报maven指令找不到,因为jenkins执行脚本是在/usr/bin下面找的,所以这里有两种方式。
第一种在/usr/bin下面创建mvn命令的软链接
//前面的是maven安装路径 ln –s /usr/maven/apache-maven-3.1.1/bin/mvn /usr/bin/mvn
第二种
用我们前面配置的全局工具maven,配置任务的构建时,添加构建步骤选择invoke top-level maven targets,我这里显示的是“调用顶层maven目标”
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类