如何通过Jenkins Job Builder每小时构建并运行Git中Maven项目的Jar包
配置Jenkins Job Builder实现Maven项目每小时构建并运行Jar
首先得确保你的Jenkins环境已经搭好这些基础:
- 装了Jenkins Job Builder(JJB),并且已经配置好和Jenkins服务器的连接
- Jenkins上安装了Maven插件和Git插件
- Jenkins服务器有对应版本的Java环境(和你项目使用的Java版本匹配)
接下来直接上可复用的JJB YAML配置,我会逐段给你解释:
- job: name: hourly-hello-world-build-run description: "每小时自动构建并运行Hello-World Maven项目" scm: - git: url: "你的Git仓库地址,比如git@github.com:xxx/hello-world.git" branches: - "*/main" # 替换成你实际要构建的分支名 triggers: - cron: "H * * * *" # H让Jenkins随机在小时内选一个分钟执行,避免任务扎堆 builders: - maven: maven-version: "M3" # 替换成你Jenkins里配置的Maven实例名称 goals: "clean package -DskipTests" # 清理旧产物+打包,跳过测试可按需移除 publishers: - shell: | # 运行生成的Jar,这里假设Jar在target目录下,名称是hello-world-1.0-SNAPSHOT.jar # 如果是一次性输出的HelloWorld程序,直接运行即可 java -jar target/hello-world-1.0-SNAPSHOT.jar # 如果是需要后台持续运行的服务,建议用nohup避免Jenkins卡住: # nohup java -jar target/hello-world-1.0-SNAPSHOT.jar > hello-world.log 2>&1 &
关键细节说明:
- Cron表达式:
H * * * *是Jenkins推荐的每小时构建写法,H会让任务在每个小时内随机触发,防止多任务同时跑占满资源;如果想要固定在每小时第10分钟执行,改成10 * * * *就行。 - Maven命令:
clean package会先清空之前的构建产物,再编译打包生成Jar到target目录;如果你的项目需要跑测试,去掉-DskipTests即可。 - Jar运行逻辑:
- 要是你的Hello-World是运行后直接输出结果就退出的程序,直接用
java -jar ...就能让Jenkins捕获运行日志。 - 要是需要后台持续运行的服务,必须用
nohup或者做成系统服务,不然Jenkins会一直等进程结束,导致构建永远卡着。
- 要是你的Hello-World是运行后直接输出结果就退出的程序,直接用
最后一步生效配置:
把这个YAML文件存成hello-world-job.yaml,然后用JJB命令上传到Jenkins:
jenkins-jobs update hello-world-job.yaml
这样定时任务就配置完成了,Jenkins会每小时自动拉最新代码、构建Jar并运行它。
内容的提问来源于stack exchange,提问作者batilei
相关产品推荐
相关产品推荐

