本教程向你展现如何使用Jenkins编排使用Maven构建简单的Java应用程序。java
若是你是使用Maven且不熟悉CI/CD概念的Java开发人员,或者你可能熟悉这些概念但不知道如何使用Jenkins实现构建应用程序,那么本教程适合你。git
简单的Java应用程序(你将从GitHub上的示例存储库获取)输出字符串“Hello world!”并附带一些单元测试,以检查主应用程序是否按预期工做,这些测试的结果将保存到JUnit XML报告中。github
持续时间:本教程须要20-40分钟才能完成(假设你已经知足如下的前提条件),具体的持续时间取决于你的机器的速度以及你是否已经从另外一个教程中运行了Docker中的Jenkins。docker
你能够随时中止本教程,并从上次中止的地方继续。apache
若是你已经运行了另外一个教程,则能够跳过下面的前提条件和在Docker中运行Jenkins部分,而后继续分析示例存储库(确保你在本地安装了Git),若是你须要从新启动Jenkins,只需按照中止并从新启动Jenkins中的重启说明操做,而后继续。segmentfault
对于本教程,你将须要:浏览器
macOS、Linux或Windows机器:bash
安装了如下软件:app
在本教程中,你将从jenkinsci/blueocean Docker镜像中将Jenkins做为Docker容器运行。maven
要在Docker中运行Jenkins,请遵循下面针对macOS和Linux或Windows的相关说明。
你能够在安装Jenkins页面的Docker和在Docker中下载并运行Jenkins部分阅读有关Docker容器和镜像概念的更多信息。
使用如下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
目录。使用如下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说明。
若是你有使用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实例时,系统会要求你使用自动生成的密码将其解锁。
http://localhost:8080
并等待,直到出现解锁Jenkins页面。管理员密码
字段中,而后单击继续。解锁Jenkins后,将出现自定义Jenkins页面。
在此页面上,单击安装推荐的插件。
安装向导显示正在配置的Jenkins的进度以及正在安装的建议插件,此过程可能须要几分钟时间。
最后,Jenkins要求你建立第一个管理员用户。
当Jenkins已就绪!页面出现时,单击开始使用Jenkins。
在本教程的其他部分中,你能够经过在上面的运行docker run ...
命令的终端/命令提示符窗口中键入Ctrl-C
来中止Jenkins/Blue Ocean Docker容器。
要从新启动Jenkins/Blue Ocean Docker容器:
docker run ...
命令。注意:若是有更新的镜像,此过程还会更新jenkinsci/blueocean Docker镜像。http://localhost:8080
。从GitHub获取简单的“Hello world!”Java应用程序,经过将应用程序源代码的示例存储库fork到你本身的GitHub账户,而后克隆此fork到本地。
simple-java-maven-app
项目fork到你本地的GitHub账户,若是你须要有关此过程的帮助,请参阅GitHub网站上的Fork A Repo文档以获取更多信息。克隆你fork的simple-java-maven-app
存储库(在GitHub上)本地到你的计算机上,要开始此过程,请执行如下任一操做(其中<your-username>
是你的操做系统上的用户账户的名称):
若是你的计算机上安装了GitHub Desktop应用程序:
在GitHub Desktop中,在Clone a Repository对话框中单击Clone以前,请确保本地路径为:
/Users/<your-username>/Documents/GitHub/simple-java-maven-app
/home/<your-username>/GitHub/simple-java-maven-app
C:\Users\<your-username>\Documents\GitHub\simple-java-maven-app
不然:
打开终端/命令行提示符并cd
到相应的目录:
/Users/<your-username>/Documents/GitHub/
/home/<your-username>/GitHub/
C:\Users\<your-username>\Documents\GitHub\
(即便使用Git bash命令行窗口而不是一般的Microsoft命令提示符)git clone https://github.com/YOUR-GITHUB-ACCOUNT-NAME/simple-java-maven-app
其中YOUR-GITHUB-ACCOUNT-NAME
是你的GitHub账户的名称。simple-java-maven-app
)。在Repository URL字段中,指定上面本地克隆的存储库的目录路径,该路径来自主机上的用户账户/主目录,映射到Jenkins容器的/home
目录 - 即
/home/Documents/GitHub/simple-java-maven-app
/home/GitHub/simple-java-maven-app
/home/Documents/GitHub/simple-java-maven-app
Jenkinsfile
了,你将把它检入本地克隆的Git存储库。