You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过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会一直等进程结束,导致构建永远卡着。

最后一步生效配置:

把这个YAML文件存成hello-world-job.yaml,然后用JJB命令上传到Jenkins:

jenkins-jobs update hello-world-job.yaml

这样定时任务就配置完成了,Jenkins会每小时自动拉最新代码、构建Jar并运行它。

内容的提问来源于stack exchange,提问作者batilei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:09:25