![Jenkins 2.x实践指南](https://wfqqreader-1252317822.image.myqcloud.com/cover/830/25449830/b_25449830.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.6 使用Maven构建Java应用
Maven是非常流行的一个Java应用构建工具。下面我们再来看一个使用Maven构建Java应用的例子。Jenkins默认支持Maven。
首先在本地创建一个Maven项目,目录结构如下:
![](https://epubservercos.yuewen.com/29EDEB/13898202705417506/epubprivate/OEBPS/Images/26_2.jpg?sign=1739610360-s6SyymYCTODD7CHKMvcOPM06Qhkf1vO4-0-223d48724ea4601f02d759e6aa308ebe)
接下来,需要在Jenkins上安装JDK和Maven。我们可以登录Jenkins服务器手动安装,也可以让Jenkins自动安装。这里选择后者。方法如下:
(1)进入Manage Jenkins→Global Tool Configuration→Maven页,设置如图2-7所示。
![](https://epubservercos.yuewen.com/29EDEB/13898202705417506/epubprivate/OEBPS/Images/27_1.jpg?sign=1739610360-EZnMM7Qw4uNEQLed7zSB2ljY0BCDedgp-0-03a772951b77f85c65a4818497aaadb7)
图2-7 自动安装Maven
留意Name输入框中的值,这里填的是mvn-3.5.4。在后面的pipeline中会使用到。
(2)进入Manage Jenkins→Global Tool Configuration→JDK页,设置如图2-8所示。
![](https://epubservercos.yuewen.com/29EDEB/13898202705417506/epubprivate/OEBPS/Images/27_2.jpg?sign=1739610360-99PG9Vo6WbH5DYMA56X9SbNFtgXSZmDC-0-790220d9ff2580d550d424be4533966d)
图2-8 自动安装JDK
Jenkinsfile内容如下:
![](https://epubservercos.yuewen.com/29EDEB/13898202705417506/epubprivate/OEBPS/Images/27_3.jpg?sign=1739610360-LmSOvDTQXx0kXsaj8tCAOFFCkYt9tUl9-0-6f46b292189987bd7fc027cdd7e09a2a)
![](https://epubservercos.yuewen.com/29EDEB/13898202705417506/epubprivate/OEBPS/Images/28_1.jpg?sign=1739610360-rfPcrPBwIZh6birk2drE9gKlffz3obqX-0-15b32d1ad662805d653ea24c517944d3)
当Jenkins执行到tools时,就会根据Maven的设置自动下载指定版本的Maven,并安装。tools是pipeline中的一个指令,用于自动安装工具,同时将其路径放到PATH变量中。通过命令sh "printenv",可以看到tools将MAVEN_HOME放到了当前任务的环境变量中。
![](https://epubservercos.yuewen.com/29EDEB/13898202705417506/epubprivate/OEBPS/Images/28_2.jpg?sign=1739610360-CJ9RCwLLBMTCZJHics6esG02IjirnJam-0-7ed4f800274b2ded6ed529dd19d0975e)
关于tools的更多信息,我们会在第4章中进行详细介绍。
单击构建后,通过Jenkins执行日志,我们看到指定版本的Maven被下载和安装,mvn执行打包。
![](https://epubservercos.yuewen.com/29EDEB/13898202705417506/epubprivate/OEBPS/Images/28_3.jpg?sign=1739610360-XvfQYvLFYFAf3dmgCVturbIEALSutiSL-0-8ac44b73d9dfe64a8dfe90d69175128d)
至此,又一个完整的pipeline入门示例完成了。