Docker + Jenkins + Java:新手必看的jenkins构建教程


木易
原创
发布时间: 2025-08-30 17:07:57 | 阅读数 0收藏数 0评论数 0
封面
还在为搭建 Jenkins 环境、配置 Java 工具链、处理依赖冲突而烦恼吗?本教程将手把手教你使用 Docker 快速部署 Jenkins,并用它来构建一个简单的 Java 项目。Docker 的容器化技术能让你摆脱复杂的环境配置,专注于学习 Jenkins 的核心功能——持续集成(CI)。即使你是完全的新手,也能一步步完成整个流程!
1

前提条件

需要电脑安装JDK17版本的java环境以及maven服务。

2

搭建Jenkins

// 创建目录
mkdir -p /data/jenkins_home

// 修改目录权限
chown -R 1000:1000 /data/jenkins_home/

// 拉取镜像
docker pull jenkins/jenkins:lts

// 启动容器
docker run -d \
--name jenkins \
-p 8088:8080 \
-p 50000:50000 \
-v /usr/local/jdk/jdk17:/opt/jdk17 \
-v /data/jenkins_home:/var/jenkins_home \
-v /usr/local/maven/apache-maven-3.8.9:/opt/maven \
-e JAVA_HOME=/opt/jdk17 \
-e MAVEN_HOME=/opt/maven \
-e PATH="/opt/jdk17/bin:/opt/maven/bin:$PATH" \
jenkins/jenkins:lts
3

访问Jenkins

输入ip地址:8088 访问jenkins页面。

// 查看密码
cat /data/jenkins_home/secrets/initialAdminPassword

创建管理员用户,配置访问实例url地址输入完成点击左下角保存并完成。

4

安装插件

进入到首页点击右上角的设置按钮,进入到设置页面,选择插件管理选项,在Available plugins搜索搜索 Maven Integration 和 Publish Over SSH 以及 Gitee 三个插件安装即可。

安装完成之后重新启动jenkins容器。

5

全局工具配置

重新进入设置页面,选择“全局工具配置”,对JDK和Maven进行配置。首页要取消勾选自动安装,不然无法设置。选择“JDK安装”,设置别名为“java17”,并将“JAVA_HOME”配置为容器创建时挂载的路径。Maven的配置方式与JDK相同。若配置的路径与容器挂载路径不一致,系统将提示警告,提示当前路径不存在。

配置完成后,点击“保存”即可。

6

系统配置

进入系统管理配置界面,通过全局搜索功能查找“SSH Servers”相关配置项。

在配置页面中,填写以下基本信息:

  1. Name:为当前SSH连接环境设置一个易于识别的名称,用于标识该服务器配置。
  2. Hostname:输入目标服务器的IP地址或可解析的主机名,确保Jenkins能够通过网络访问该主机。
  3. Username:填写用于登录远程服务器的用户名。

填写完基本信息后,点击“高级”按钮展开更多选项。在高级设置中,勾选“使用密码认证”或类似选项(具体名称可能因插件版本略有不同),并输入对应用户的登录密码。为确保安全性,密码输入框通常以密文形式显示。

完成所有配置项后,滚动页面至底部,点击“Test Configuration”按钮,系统将尝试使用所填信息连接目标服务器。测试结果将实时显示在按钮左侧或下方区域。若配置正确且网络可达,将显示“Success”或类似成功提示;若连接失败,系统会返回具体的错误信息,如“Connection refused”或“Authentication failed”,可根据提示进一步排查问题。

确认连接测试成功后,点击“保存”按钮,完成SSH服务器的配置。该配置后续可用于执行远程脚本、部署应用等自动化任务。

7

gitee配置

登录 Gitee 账户,进入个人中心页面。在左侧菜单中找到“私人令牌”(或“访问令牌”)管理选项,点击“创建新令牌”或“生成令牌”。在弹出的创建界面中,为令牌设置一个描述性名称(例如“Jenkins集成”),并根据需要勾选相关权限范围(如“仓库读取权限”、“WebHook管理权限”等)。确认后点击“生成”按钮,系统将生成一个唯一的访问令牌。

请注意:该令牌仅会显示一次,请务必在关闭页面前将其完整复制并妥善保存。

复制生成的私人令牌后,进入 Jenkins 的系统管理配置界面。在全局配置搜索框中输入“Gitee”,查找与 Gitee 相关的配置项。进入 Gitee 配置页面后,找到“证书”或“Credentials”设置区域,点击“添加”下拉菜单,选择“Jenkins”或“Secret text”类型,添加一条新的凭证:

  1. Kind(类型):选择“Secret text”
  2. Secret(密钥):粘贴之前复制的 Gitee 私人令牌
  3. ID(标识):可自定义,如 gitee-token
  4. Description(描述):可填写“Gitee API 访问令牌”便于识别


添加完成后,在 Gitee 全局配置中选择刚刚创建的令牌作为认证方式。配置完毕后,滚动页面至左下角,点击“Test Connection”(测试连接)按钮。Jenkins 将尝试使用该令牌与 Gitee 服务进行连接验证。

如果配置正确且令牌有效,测试结果将返回“Success”或绿色对勾提示,表示连接成功。若测试失败,请检查令牌是否正确、权限是否足够以及网络是否可达。确认测试通过后,点击页面底部的“保存”按钮,完成 Gitee 凭证的配置,为后续的代码拉取、WebHook 触发等集成操作做好准备。

8

构建项目

在 Jenkins 主界面中,点击“新建任务”(或“New Item”)。在创建页面中,输入任务名称,选择“构建一个 Maven 项目”(Build a Maven project),然后点击“确定”进入任务配置页面。

进入配置后,向下滚动到“源码管理”(Source Code Management)部分,选择“Git”。在 Git 配置区域中:

仓库URL:输入你的 Gitee 项目仓库地址(例如:`https://gitee.com/username/repository.git`)。

凭证(Credentials):点击右侧的“添加”按钮,选择之前在 Jenkins 中配置的 Gitee 私人令牌凭证(类型为“Secret text”),确保 Jenkins 能够通过认证拉取代码。

完成源码管理配置后,继续向下找到“构建触发器”(Build Triggers)部分。勾选“Gitee webhook 触发构建”(或“Build when a change is pushed to Gitee”等类似选项,具体名称可能因插件版本略有不同)。

注意:选择此触发方式后,需前往 Gitee 项目中配置 Webhook,以实现代码推送时自动通知 Jenkins。


接下来,进入 Gitee 项目主页,点击“管理” → “WebHook” → “添加 WebHook”:

  1. URL:回到 Jenkins 任务配置页面,在“构建触发器”区域下方或 Gitee 插件配置中,可找到 Jenkins 提供的 Webhook 回调地址(格式通常为:`http://<JENKINS_URL>/gitee-webhook/`)。
  2. 将该 URL 复制并粘贴到 Gitee Webhook 的 URL 输入框中。
  3. 触发事件可根据需要选择,如“推送事件”、“合并请求事件”等,建议至少勾选“Push Event”。
  4. 点击“添加”或“保存”完成 Webhook 配置。


最后,配置实际的构建步骤。滚动到“Build”(构建)部分,在“Goals and options”(目标和选项)输入框中,填写以下 Maven 命令:

clean package -DskipTests=true

该命令表示:清理旧构建文件、重新编译并打包项目,同时跳过单元测试以加快构建速度。如有其他构建需求(如部署、指定 profile 等),可在此进一步扩展参数。

全部配置完成后,点击页面底部的“保存”按钮。此时,当代码推送到 Gitee 仓库时,Gitee 将通过 Webhook 通知 Jenkins,触发自动拉取代码并执行 `clean package` 构建流程。可通过手动推送代码测试整个 CI 流程是否正常运行。

9

构建后操作

选择PostSteps选项,添加构建步骤“Send files or execute commands over SSH”。

# 设置jdk路径
export JAVA_HOME=/usr/local/jdk/jdk17
export PATH=$JAVA_HOME/bin:$PATH

# 设置jar路径和文件名
JAR_PATH=/data/jenkins_home/workspace/jenkins-test/target
JARFILE=demo1-0.0.1-SNAPSHOT.jar

# kill掉正在运行的java进程
ps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9

# 开启一个新的java进程
nohup java -jar -Xms512m -Xmx1024m $JAR_PATH/$JARFILE > out.log 2>&1 &

if [ $? -eq 0 ]; then
sleep 30
tail -n 50 out.log
fi

10

测试

修改本地项目内容并推送至代码仓库后,等待 Jenkins 构建完成,查看 out.log 文件的输出内容,即可看到新增的“SpringBoot启动类”输出语句。

阅读记录0
点赞0
收藏0
禁止 本文未经作者允许授权,禁止转载
猜你喜欢
评论/提问(已发布 0 条)
评论 评论
收藏 收藏
分享 分享
pdf下载 下载