Jenkins构建maven任务

进入Jenkins web管理界面,点击左侧新建任务(New Item)

在这里插入图片描述

在这里插入图片描述
进入创建页面后,输入任务名称,名称自定义,选择构建一个maven项目

在这里插入图片描述
选择好之后,点击确认,就可以进入下面的配置

General(基础配置)

描述(name):对任务的描述

丢弃旧的构建(Discard Old Builds):用于自动删除旧的构建记录,以释放磁盘空间并提高系统性能。在这个设置中,你可以指定保留多少个最新构建,以及是否保留构建日志和其他构建数据。
在这里插入图片描述
GitHub 项目:可以指定 Github 仓库的 URL,以便 Jenkins 可以获取 Github 仓库的代码和其他配置信息。非必填
在这里插入图片描述

源码管理

一般我们的源码管理都是git,勾选Git选项之后,就会出现相关的填写项

在这里插入图片描述
Repository URL填写我们的git项目地址,就是克隆的地址

接下来就可以点击Credentials下的添加,来添加凭证,凭证有多种方式,有用户名或密码、ssh、token等,选择其中一种凭证方式即可

1、用户名/密码,填写我们git的用户名和密码
类型为 username with password
在这里插入图片描述
2、ssh密钥

类型为SSH Username with private key

如果使用ssh密钥进行认证,那么就填写我们的ssh私钥和用户名

在这里插入图片描述
Branches to build可以指定我们的git分支,指定之后,就会从该分支拉取代码

构建触发器

Jenkins的构建触发器是一种机制,用于触发构建任务的执行。这使得Jenkins能够根据预设的条件或事件自动检测更改并执行相应的构建操作。

Jenkins提供了多种类型的构建触发器,包括轮询SCM、远程触发器、定时构建等

远程构建

在 “身份验证令牌” 字段中输入一个用于验证请求的密钥。这个密钥将被用作构建 URL 的一部分。

完成上述设置后,你可以通过发送 HTTP POST 请求来触发 Jenkins 构建。构建 URL 的格式如下:

JENKINS_URL/me/my-views/view/all/job/test/build?token=TOKEN_NAME

JENKINS_URL是我们的jenkins的ip地址,TOKEN_NAME就是我们填的身份验证令牌,test是我们的作业名称

通过向该 URL 发送 POST 请求,就可以触发 Jenkins 的构建

在这里插入图片描述
定时构建

按照我们所填的日程表cron表达式定时构建

在这里插入图片描述
其他工程构建后触发

在某个工程构建之后进行构建,在关注的项目填写工程名称

在这里插入图片描述
当我们安装了git或者gitlab的插件的时候,还可以使用webhook url,当变更被推送到Git或者GitLab时进行构建

构建环境

构建环境有以下选择,大家按需配置

  • Delete workspace before build starts(在开始构建之前删除工作区)

  • Use secret text(s) or file(s)(使用秘密文本或文件)

  • Send files or execute commands over SSH before the build
    starts(在开始构建之前,通过SSH发送文件或执行命令)

  • Send files or execute commands over SSH after the build
    runs(在构建运行之后,通过SSH发送文件或执行命令)

  • Inspect build log for published build scans(检查构建日志,查看已发布的构建扫描)

  • Terminate a build if it’s stuck(如果卡住,终止构建)

一般我们用的比较多的是Send files or execute commands over SSH before the build starts,这个是我们安装了Publish Over SSH插件才会有的功能,一般用于发送文件或者在远程服务器执行命令

在这里插入图片描述
Source files:需要发送的文件路径(jenkins服务器上的文件),路径相对于工作区,多个文件使用,分隔

Remove prefix:需要去除的前缀,没有则为空。比如我们的Source files源文件路径为target/demo-0.0.1-SNAPSHOT.jar,那么如果我们的Remove prefix为空,那么jenkins也会创建一个target目录,而不是直接存放文件到我们的远程目录,所以一般我们的文件有前缀目录,一般会在Remove prefix填写去除

Remote directory:远程服务器的目录,就是文件要上传发送到远程服务器的目录地址

Exec command:在远程服务器上执行的命令,该命令将在传输完所有文件后在远程服务器上执行,没有文件传输则只执行命令

Pre Steps

Pre Steps可以设置构建之前的操作,比如执行一个shell或者发送文件,执行命令等操作。Pre Steps和Post Steps是需要我们安装了Maven Integration 插件才有的

在这里插入图片描述

Build

Root POM: 本次构建要使用的git仓库中的pom文件,Root POM 填的路径是相对与jenkins的工作空间的,如果你的工作空间在第一个模块的根目录之外的某个地方有顶层的pom.xml,请在这里指定路径(相对于模块根目录),例如parent/pom.xml。如果为空,默认为pom.xml,就是根目录下的pom文件

Goals and options: 要执行的mvn命令 不用写前面的mvn,一般就是clean package -DskipTests,清除 打包 跳过单元测试

在这里插入图片描述

Post Steps(后置步骤)

Post Steps(后置步骤)是指在构建完成后执行的操作

Post Steps有以下三种选项:

Run only if build succeeds:仅在构建成功时运行

Run only if build succeeds or is unstable:仅在构建成功或不稳定时运行

Run regardless of build result:无论构建结果如何都运行,这将确保后置步骤在构建成功、失败或者被中止时都会执行。

选择好我们的执行时机之后,点击Add post-build step,来添加我们的构建后操作

在这里插入图片描述
如下是我将打包之后的项目发送到远程服务器,并使用脚本进行启动

在这里插入图片描述
执行远程服务器脚本的时候,可能出现以下错误

nohup: 无法运行命令"java": 没有那个文件或目录

解决:

1、脚本添加source /etc/profile

2、将java命令改为全路径

构建设置

可以配置E-mail Notification进行邮件通知,在Recipients填写邮箱地址

构建后操作

构建后操作也是用于项目构建成功之后执行的操作,下面是一些常用选项

Send build artifacts over SSH:通过SSH发送文件或执行命令,我们可以通过这个配置将构建后的项目发送到远程服务器进行部署

Deploy artifacts to Maven repository:将工程部署到Maven存储库

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐