Jenkins 中 Maven 构建的核心要素
-
Maven 环境配置:Jenkins 需知道 Maven 安装路径
-
JDK 依赖:Maven 运行依赖 Java 环境,需提前配置
-
构建命令 :通过
mvn clean package
等命令执行构建 -
源码管理:结合 Git 插件拉取代码(参考之前的 SSH 认证配置)
-
构建产物处理:打包后的 JAR/WAR 包需归档或部署
必备插件
在 Jenkins 插件管理中安装:
-
Maven Integration plugin(Maven 集成核心插件)
-
JDK Tool Plugin(JDK 环境管理)
🔨 三种构建方式详解
方式一:自由风格项目
1. 全局工具配置
-
进入 系统管理 → 全局工具配置
-
JDK 配置:
-
取消 "自动安装",填写容器内 JDK 路径(如
/usr/local/openjdk-11
) -
别名:JDK11
-
-
Maven 配置:
-
取消 "自动安装",填写 Maven 路径(如
/usr/share/maven
) -
别名:Maven3.9.10
-
点击 "保存"
-
以下是之前教学的配置:

2. 项目配置步骤
-
新建项目 → 选择 "自由风格项目"------freestyle-maven
-
源码管理(复用 Git 配置):
-
仓库 URL:
ssh://git@192.168.145.129:2222/root/k8s-dashboard.git
-
凭证:选择之前配置的
gitlab-ssh-cred
-
-
构建环境:
- 勾选 "Provide Node & npm bin/folder to PATH"(如需 Node 环境)
-
构建步骤:
-
点击 "Add build step → Invoke top-level Maven targets"
-
Maven Version:选择全局配置的 Maven
-
Goals :填写
clean package -DskipTests
(跳过测试快速构建) -
执行shell
echo "===== 构建产物信息 =====" ls -lh target/*.jar # 列出 target 下的 JAR 文件 echo "===== 制品路径 =====" pwd # 显示当前工作目录(完整路径为:工作目录/target/xxx.jar)
-
-
构建后操作:
-
点击 "Add post-build step → Archive the artifacts"
-
Files to archive :填写
target/*.jar
(归档 JAR 包)
-
-
保存后点击 "立即构建",查看控制台输出
关键日志验证
成功构建会显示:
[INFO] Building jar: /var/jenkins_home/workspace/xxx/target/xxx.jar
[INFO] BUILD SUCCESS

方式二:Pipeline 项目
1. Jenkinsfile
pipeline {
agent any
tools {
jdk 'JDK11'// 对应全局配置的 JDK 名称
maven 'Maven3.9.10'// 对应全局配置的 Maven 名称
}
environment {
// 引用全局凭证(ID必须与之前创建的一致)
GIT_CRED = credentials('gitlab-ssh-cred')
// GitLab仓库信息
GIT_URL = 'ssh://git@192.168.145.129:2222/root/k8s-dashboard.git'
BRANCH_NAME = 'main'
}
stages {
stage('📥 代码拉取与验证') {
steps {
script {
echo "🔍 开始拉取 ${env.GIT_URL} 的 ${env.BRANCH_NAME} 分支"
checkout([
$class:'GitSCM',
branches: [[name:"refs/heads/${env.BRANCH_NAME}"]],
userRemoteConfigs: [[
url: env.GIT_URL,
credentialsId:'gitlab-ssh-cred',
name:'origin', // 远程仓库别名
refspec:'+refs/heads/*:refs/remotes/origin/*'// 获取所有分支引用
]],
// 高级配置
extensions: [
[$class:'CheckoutOption', timeout:30], // 检出超时30分钟
[$class:'LocalBranch', localBranch: env.BRANCH_NAME], // 本地分支名称
[$class:'CloneOption',
depth:1, // 浅克隆(仅拉取最新提交,加快速度)
noTags:false, // 获取标签
reference:'',
timeout:10// 克隆超时10分钟
]
]
])
// 代码拉取后验证
echo "✅ 代码拉取完成,工作目录:${pwd()}"
echo "🔍 验证Git信息:"
sh '''
git config --list | grep remote.origin.url
git branch -v
git status
'''
}
}
}
stage('🔨 代码编译') {
steps {
sh 'mvn clean compile -DskipTests'
}
}
// stage('🧪 单元测试') {
// steps {
// sh 'mvn test'
// }
// post {
// always {
// junit 'target/surefire-reports/*.xml' // 收集测试报告
// }
// }
// }
stage('📦 打包构建') {
steps {
sh 'mvn package -DskipTests'
}
}
}
post {
success {
slackSend channel:'#devops-alerts', message:"✅ Jenkins构建成功:${env.JOB_NAME} #${env.BUILD_NUMBER}\n分支:${env.BRANCH_NAME}\n构建地址:${env.BUILD_URL}"
archiveArtifacts artifacts:'target/*.jar', fingerprint:true// 归档产物
}
failure {
slackSend channel:'#devops-alerts', message:"❌ Jenkins构建失败:${env.JOB_NAME} #${env.BUILD_NUMBER}\n分支:${env.BRANCH_NAME}\n错误日志:${env.BUILD_URL}console"
}
}
}
2. 项目配置
选择上节课配置的流水线【gitlab-test-pipeline】直接运行即可。


方式三:引入共享库
1. 共享库封装 Maven 构建步骤
在共享库项目的 vars/mavenBuild.groovy
中定义:
/**
* 标准化 Maven 构建函数
* @param params 构建参数(如 goals、skipTests 等)
*/
def call(Map params = [:]) {
def goals = params.goals ?: 'clean package'
def skipTests = params.skipTests ?: true
def jdkName = params.jdkName ?: 'JDK11'
def mavenName = params.mavenName ?: 'Maven3.9.10'
// 配置 JDK 和 Maven 环境
withMaven(jdk: jdkName, maven: mavenName) {
echo "🚀 开始执行 Maven 命令:${goals}"
def cmd = "${goals}"
if (skipTests) {
cmd += " -DskipTests"
}
sh "mvn ${cmd}"
// 自动归档产物
archiveArtifacts artifacts:'target/*.jar', fingerprint:true
}
}

2. 在项目中使用共享库
选择上节课配置的流水线【gitlab-test-pipeline-shared-library】直接编辑运行即可。
@Library('my-shared-lib@main') _ // 导入共享库(指定版本)
pipeline {
agent any
stages {
stage('📥 标准化代码拉取') {
steps {
script {
gitCheckout(
repoUrl:'ssh://git@192.168.145.129:2222/root/k8s-dashboard.git',
branch:'main',
depth:0// 完整克隆(包含历史记录)
)
}
}
}
stage('🔨 标准化构建') {
steps {
mavenBuild(
goals:'clean package',
skipTests:true
)
}
}
}
}

📌 常见问题排查
-
Maven 命令找不到:检查全局工具配置中 Maven 路径是否正确
-
JDK 版本不兼容 :在
tools
块指定正确的 JDK 版本 -
依赖下载缓慢 :在 Maven 配置文件(
settings.xml
)中添加国内镜像:<mirrors> <mirror> <id>aliyun</id> <url>https://maven.aliyun.com/repository/public</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors>
-
构建产物未归档:检查 "Files to archive" 路径是否与实际打包路径一致
通过以上三种方式,可根据项目复杂度选择合适的构建方案,结合之前的 Git 认证配置,实现从代码拉取到构建打包的全自动化流程。