使用Maven构建Java应用程序
本教程向你展示如何使用Jenkins编排使用Maven构建简单的Java应用程序。
如果你是使用Maven且不熟悉CI/CD概念的Java开发人员,或者你可能熟悉这些概念但不知道如何使用Jenkins实现构建应用程序,那么本教程适合你。
简单的Java应用程序(你将从GitHub上的示例存储库获取)输出字符串“Hello world!”并附带一些单元测试,以检查主应用程序是否按预期工作,这些测试的结果将保存到JUnit XML报告中。
持续时间:本教程需要20-40分钟才能完成(假设你已经满足以下的前提条件),具体的持续时间取决于你的机器的速度以及你是否已经从另一个教程中运行了Docker中的Jenkins。
你可以随时停止本教程,并从上次停止的地方继续。
如果你已经运行了另一个教程,则可以跳过下面的前提条件和在Docker中运行Jenkins部分,然后继续分析示例存储库(确保你在本地安装了Git),如果你需要重新启动Jenkins,只需按照停止并重新启动Jenkins中的重启说明操作,然后继续。
前提条件
对于本教程,你将需要:
-
macOS、Linux或Windows机器:
- 256MB的RAM,但推荐超过512MB。
- Jenkins以及Docker镜像和容器的10GB驱动器空间。
-
安装了以下软件:
- Docker — 在安装Jenkins页面的安装Docker部分中阅读有关安装Docker的更多信息,注意:如果你使用Linux,本教程假定你没有以root用户身份运行Docker命令,而是使用单个用户帐户访问本教程中使用的其他工具。
- Git和可选的GitHub Desktop。
在Docker中运行Jenkins
在本教程中,你将从jenkinsci/blueocean Docker镜像中将Jenkins作为Docker容器运行。
要在Docker中运行Jenkins,请遵循下面针对macOS和Linux或Windows的相关说明。
你可以在安装Jenkins页面的Docker和在Docker中下载并运行Jenkins部分阅读有关Docker容器和镜像概念的更多信息。
在macOS和Linux上
- 打开一个终端窗口。
-
使用以下docker run命令将
jenkinsci/blueocean
镜像作为Docker中的容器运行(请记住,如果尚未执行此操作,此命令会自动下载镜像):docker run \ --rm \ -u root \ -p 8080:8080 \ -v jenkins-data:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ -v "$HOME":/home \ jenkinsci/blueocean
- 将容器中的
/var/jenkins_home
目录映射到名为jenkins-data
的Docker卷,如果此卷不存在,则此docker run
命令将自动为你创建卷。 - 将主机(即本地)计算机上的
$HOME
目录(通常是/Users/<your-username>
目录)映射到容器中的/home
目录。
- 将容器中的
- 继续进行安装向导。
在Windows上
- 打开命令提示符窗口。
-
使用以下docker run命令将
jenkinsci/blueocean
镜像作为Docker中的容器运行(请记住,如果尚未执行此操作,此命令会自动下载镜像):docker run ^ --rm ^ -u root ^ -p 8080:8080 ^ -v jenkins-data:/var/jenkins_home ^ -v /var/run/docker.sock:/var/run/docker.sock ^ -v "%HOMEPATH%":/home ^ jenkinsci/blueocean
有关这些选项的说明,请参阅上面的macOS和Linux说明。
- 继续进行安装向导。
访问Jenkins/Blue Ocean Docker容器
如果你有使用Docker的经验,并希望或需要使用docker exec命令通过终端/命令提示符访问Jenkins/Blue Ocean Docker容器,你可以添加一个选项,如--name jenkins-tutorials
(上面docker run命令),这将为Jenkins/Blue Ocean Docker容器命名为“jenkins-tutorials”。
这意味着你可以使用docker exec
命令访问Jenkins/Blue Ocean容器(通过单独的终端/命令提示符窗口),例如:
docker exec -it jenkins-tutorials bash
安装向导
在你访问Jenkins之前,你需要执行一些快速的“一次性”步骤。
解锁Jenkins
首次访问新的Jenkins实例时,系统会要求你使用自动生成的密码将其解锁。
- 在终端/命令提示符窗口中出现2组星号后,浏览到
http://localhost:8080
并等待,直到出现解锁Jenkins页面。 - 从终端/命令提示符窗口复制自动生成的字母数字密码(在两组星号之间)。
- 在解锁Jenkins页面上,将此密码粘贴到
管理员密码
字段中,然后单击继续。
使用插件自定义Jenkins
解锁Jenkins后,将出现自定义Jenkins页面。
在此页面上,单击安装推荐的插件。
安装向导显示正在配置的Jenkins的进度以及正在安装的建议插件,此过程可能需要几分钟时间。
创建第一个管理员用户
最后,Jenkins要求你创建第一个管理员用户。
- 出现创建第一个管理员用户页面时,在相应字段中指定你的详细信息,然后单击保存并完成。
-
当Jenkins已就绪!页面出现时,单击开始使用Jenkins。
- 这个页面可能表明Jenkins已经准备好了!相反,如果是,请单击重启。
- 如果页面在一分钟后没有自动刷新,请使用Web浏览器手动刷新页面。
- 如果需要,使用你刚刚创建的用户的凭据登录Jenkins,你就可以开始使用Jenkins!
停止和重新启动Jenkins
在本教程的其余部分中,你可以通过在上面的运行docker run ...
命令的终端/命令提示符窗口中键入Ctrl-C
来停止Jenkins/Blue Ocean Docker容器。
要重新启动Jenkins/Blue Ocean Docker容器:
- 运行与上面的macOS、Linux或Windows相同的
docker run ...
命令。注意:如果有更新的镜像,此过程还会更新jenkinsci/blueocean Docker镜像。 - 浏览
http://localhost:8080
。 - 等到登录页面出现并登录。
在GitHub上Fork并clone样本存储库
从GitHub获取简单的“Hello world!”Java应用程序,通过将应用程序源代码的示例存储库fork到你自己的GitHub帐户,然后克隆此fork到本地。
- 确保你已登录GitHub帐户,如果你还没有GitHub帐户,请在GitHub网站上注册免费帐户。
- 将GitHub上的
simple-java-maven-app
项目fork到你本地的GitHub帐户,如果你需要有关此过程的帮助,请参阅GitHub网站上的Fork A Repo文档以获取更多信息。 -
克隆你fork的
simple-java-maven-app
存储库(在GitHub上)本地到你的计算机上,要开始此过程,请执行以下任一操作(其中<your-username>
是你的操作系统上的用户帐户的名称):-
如果你的计算机上安装了GitHub Desktop应用程序:
- 在GitHub中,单击你fork的存储库上的绿色Clone or download按钮,然后单击Open in Desktop。
-
在GitHub Desktop中,在Clone a Repository对话框中单击Clone之前,请确保本地路径为:
- macOS是
/Users/<your-username>/Documents/GitHub/simple-java-maven-app
- Linux是
/home/<your-username>/GitHub/simple-java-maven-app
- Windows是
C:\Users\<your-username>\Documents\GitHub\simple-java-maven-app
- macOS是
-
否则:
-
打开终端/命令行提示符并
cd
到相应的目录:- macOS —
/Users/<your-username>/Documents/GitHub/
- Linux —
/home/<your-username>/GitHub/
- Windows —
C:\Users\<your-username>\Documents\GitHub\
(即使使用Git bash命令行窗口而不是通常的Microsoft命令提示符)
- macOS —
- 运行以下命令以继续/完成克隆你的fork的存储库:
git clone https://github.com/YOUR-GITHUB-ACCOUNT-NAME/simple-java-maven-app
其中YOUR-GITHUB-ACCOUNT-NAME
是你的GitHub帐户的名称。
-
-
在Jenkins中创建管道项目
- 返回Jenkins,必要时再次登录,然后单击新建任务!
注意:如果你没有看到此内容,请单击左上角的新建项目。 - 在输入一个任务名称字段中,指定新管道项目的名称(例如,
simple-java-maven-app
)。 - 向下滚动并单击流水线,然后单击页面末尾的确定。
- (可选)在下一页,在描述字段中指定管道的简要描述(例如,演示如何使用Jenkins使用Maven构建简单的Java应用程序的入门级管道)。
- 单击页面顶部的Pipeline选项卡以向下滚动到Pipeline部分。
- 从Definition字段中,选择Pipeline script from SCM选项,此选项指示Jenkins从源控制管理(SCM)获取管道,该管理将是你本地克隆的Git存储库。
- 从SCM字段中,选择Git。
-
在Repository URL字段中,指定上面本地克隆的存储库的目录路径,该路径来自主机上的用户帐户/主目录,映射到Jenkins容器的
/home
目录 - 即- 对于macOS —
/home/Documents/GitHub/simple-java-maven-app
- 对于Linux —
/home/GitHub/simple-java-maven-app
- 对于Windows —
/home/Documents/GitHub/simple-java-maven-app
- 对于macOS —
- 单击保存以保存新的管道项目,你现在已准备好开始创建
Jenkinsfile
了,你将把它检入本地克隆的Git存储库。