Jenkins+maven+git(gogs)自动化构建打包+部署(项目实战)

  1. 安装Jenkins所需插件
  • Maven Integration
  • Publish Over SSH
  • Git

系统管理>插件管理>Available plugins。在此安装所需要的插件


  • 全部安装完成
  1. 配置Jenkins

系统管理>全局配置

  • JDK配置

这个jdk的目录是Jenkins容器里面的jdk目录,docker安装一般都是这个目录

  • Git配置
bash 复制代码
root@sdgs-server04:~# yum -y install git
#如果有执行一下命令查看路径
root@sdgs-server04:~# whereis git
git: /usr/bin/git /usr/share/man/man1/git.1.gz
  • Maven配置

Maven部署包下载、提取码:1021

上传部署包到挂载出来的目录

bash 复制代码
root@sdgs-server04:/home/data/jenkins_data# ll /home/data/jenkins_data/apache-maven-3.9.6-bin.tar.gz
-rw-r--r-- 1 root root 9410508 Oct 24 16:30 /home/data/jenkins_data/apache-maven-3.9.6-bin.tar.gz
#解压maven部署包
root@sdgs-server04:/home/data/jenkins_data# tar -xf apache-maven-3.9.6-bin.tar.gz

修改maven配置

bash 复制代码
vim apache-maven-3.9.6/conf/settings.xml


改为以下内容:

bash 复制代码
  <mirrors>
    <mirror>
    <id>aliyunmaven</id>
    <mirrorOf>central</mirrorOf>
    <name>aliyun maven</name>
    <url>https://maven.aliyun.com/repository/public</url>
    </mirror>
  </mirrors>

放开maven私有库地址

bash 复制代码
<localRepository>/var/jenkins_home/cwh</localRepository>
#/var/jenkins_home/cwh 目录是在容器里面的目录 
#创建目录
mkdir cwh
#在挂载出来的目录进行创建,也就是:/home/data/jenkins_data
root@sdgs-server04:/home/data/jenkins_data# chown -R jenkins:jenkins apache-maven-3.9.6 cwh

页面配置maven

在Jenkins页面 默认都是找容器里面的目录,所以要把maven安装在Jenkins挂载出来的目录里面

  1. 创建任务


填写完之后如下图:

新增密码

配置Root POM和Goals and options

bash 复制代码
SDGS-YHJC/pom.xml
clean package -pl sdgs-modules/sdgs-road --am -Dmaven.test.skip=true

解释一下这个位置为什么这么配置:

Root POM文件:比如你这个项目分支下 第一页目录是SDGS-YHCJ你点进去之后有pom.xml文件。那么这个里面肯定是父POM文件,所以要加上目录

Goals and options:-pl sdgs-modules/sdgs-road 这些参数是为了指定这个分支下 子系统的构建 比如进去了SDGS-YHCJ文件夹,里面还有很多子系统 这时候通过这个参数指定子系统的目录即可。--am 参数表示自动激活所需的项目。当使用 -pl 参数指定构建的项目模块时,--am 告诉 Maven 自动激活这些项目及其依赖项,确保构建所需的项目被激活。-Dmaven.test.skip=true跳过测试,直接打包。

配置完保存即可

  1. 配置SSH(把编译好的包发送到对应机器的目录)

系统管理>系统配置

  1. 开始构建

  2. 构建成功

  3. 配置任务,添加构建完之后的操作



上图的Exec command里面可以写一些更新系统的命令 就当在Linux执行一样就行

  1. 保存完重新构建
  1. 部署成功


到这就成功完成了构建了

相关推荐
czhc11400756631 小时前
2026-09-11 一日综合:树的父链、git 概念、三方死锁、静默失败
大数据·git·elasticsearch
ChampaignWolf1 小时前
abapgit-agent:用 Git 当中介,让 Claude Code 自己完成 ABAP 闭环开发
git·ai·abap·claude·abapgit·mcp
嘴贱欠吻!2 小时前
如何成为 CJMP 贡献者:AtomGit贡献流程与要求
git·ci/cd
滕州市燕猫虎计算机科技工作室个体工商户3 小时前
.gitignore文件不生效的解决方法
git·.gitignore·.gitignore不生效
hasty4 小时前
一个 Git 分支名,如何穿透到 CI Runner 的 Shell?
git·ci/cd
橘色的喵6 小时前
Claude Code 状态栏脚本:一行显示模型、上下文占用、git 分支和当前目录
linux·git·bash·claude
fangjianj6 小时前
git 常用命令
git
qq_349447957 小时前
jenkin节点创建
jenkins
hasty8 小时前
execSync() 拼接 Git 参数的代价:从元数据到供应链执行
git·安全·安全性测试
sunshine22 girl1 天前
Java学习一 环境配置3 Idea中的maven仓库,pom.xml文件配置
学习·maven·intellij-idea