![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=1739020989-wELEBnhrIZcfQSi2dg7AhPqE4ZIgZJL7-0-481833e68f3f04e329222ff9f2b85a98)
接下来,需要在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=1739020989-jXhq2gIMih0CDIIdKx2QXjaS4ZTfXXqF-0-6eae13c9263a9306152f23c64957bd5a)
图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=1739020989-keDag2D5vxgSbLx6QymG6sVmgcFKfFGU-0-a1013d961570feed03f8327c3caf9993)
图2-8 自动安装JDK
Jenkinsfile内容如下:
![](https://epubservercos.yuewen.com/29EDEB/13898202705417506/epubprivate/OEBPS/Images/27_3.jpg?sign=1739020989-z0MpidJ30Qdw7FP1ywwl1UtN84sjAIHJ-0-83274e6dcdd9626c93b48f9b026afdde)
![](https://epubservercos.yuewen.com/29EDEB/13898202705417506/epubprivate/OEBPS/Images/28_1.jpg?sign=1739020989-DNHLO31SPyfSnx0R10UClRe5SHj4cEqq-0-3a77346ca3a3db389752721cfc12d84d)
当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=1739020989-fpLmL4BfLdzPKnmSOL7WvDY0rEWqBfzs-0-33560e544c65f1d6b9d8740d1d594c3b)
关于tools的更多信息,我们会在第4章中进行详细介绍。
单击构建后,通过Jenkins执行日志,我们看到指定版本的Maven被下载和安装,mvn执行打包。
![](https://epubservercos.yuewen.com/29EDEB/13898202705417506/epubprivate/OEBPS/Images/28_3.jpg?sign=1739020989-CSUU49OOAoJ8wF6hlVO0spzhaDN5ojfE-0-245ab56e938656e021be0bec7198c958)
至此,又一个完整的pipeline入门示例完成了。