Maven 和 Jenkinsfile - 跳过前面的阶段

2023-12-25

我正在探索 Jenkins 的暂存功能,我想设计一个快速且精益的设置。

基本上,Jenkins 提倡使用阶段来划分构建过程,并提供有关构建进度的良好视觉反馈。

So the Jenkinsfile有点像

stage("Build")
bat("mvn compile")

stage("Test")
bat("mvn test")

stage("Deploy")
bat("mvn deploy")

这很有效,但感觉不对,因为deploy and test双方都会再次进行之前阶段的活动。

因此,在此设置中,我构建了三次(尽管由于没有更改而跳过编译)并测试了两次(在测试和部署运行中)。

当我搜索时,我可以找到各种开关,其中之一用于跳过单元测试,但无论我做什么,编译和依赖项解析步骤都会发生。

在这种情况下,我需要在速度和阶段之间进行选择,还是可以两者兼而有之?

I mean:

stage("Resolve dependencies, build, test and deploy")
bat("mvn deploy")

是迄今为止最快的方法,但它并没有在 Jenkins 中生成一个很好的进度表。


为了像 Gradle 那样在 Maven 阶段引入增量构建,您可以使用takari 生命周期 https://github.com/takari/takari-lifecycleMaven 插件。

因此,一旦应用该插件,您将获得所有好处。在你的例子中,Test将要表演的舞台mvn test将避免编译,因为它是在前一阶段编译的并且Deploystage 将避免从主源代码和测试源代码进行编译,但测试将再次执行,所以我建议添加-DskipTests.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Maven 和 Jenkinsfile - 跳过前面的阶段 的相关文章

随机推荐

  • 将现有模板加载到 JasperDesign 然后更改它时如何更改页面大小/格式?

    我从这里提出这个问题post https stackoverflow com questions 10772240 how to change page format in runtimejasperreport 我不确定是否应该创建一个新
  • 如何在 Next.js 中使用 localStorage 并且不会出现水合错误?

    我想使用本地存储来保存令牌并访问它 我的代码如下所示 if typeof window undefined localStorage setItem key value 如果我不使用检查窗口类型的部分 我会收到错误 本地存储未定义 但这似乎
  • 微服务中的授权 - 如何使用 ACL 实现域对象或实体级访问控制?

    我目前正在 java Spring Cloud 上构建基于微服务的系统 一些微服务使用 PostgreSQL 一些微服务使用 MongoDB REST和JMS用于通信 计划使用 SSO 和 OAuth2 进行身份验证 我面临的挑战是授权必须
  • Python 3.3 的 pyHook

    我正在使用 Python 编写一个简单的键盘记录器 我希望使用 pyHook 来捕获键盘事件 我找不到我安装的任何用于 python 3 3 的 pyHook 包 python 3 3 是否有其他模块提供类似的功能 很快谷歌就出现了这个网站
  • 如何解决 facebook new graph api 中的curlException 6问题:名称查找超时错误

    您好 我正在使用新的图形 api 在 facebook 上创建应用程序 但它给出的错误为 curlException 6 facebook php 文件中的名称查找超时 问题是相同的代码在其他服务器上运行良好并且不会给出此错误 如何解决这个
  • java.lang.IllegalStateException:迁移未正确处理表

    如何将 Room 中的空字段类型迁移为文本 现在我面临这个问题 java lang IllegalStateException 迁移未正确处理 data table 预期 TableInfo name data table columns
  • 将令牌添加到 lucene 令牌流

    我写了一个TokenFilter它在流中添加令牌 1 测试表明它有效 但我不完全明白为什么 如果有人能阐明语义 我将不胜感激 特别是 在 恢复状态 是不是意味着我们要么覆盖当前的token 要么覆盖捕获状态之前创建的token 这大致就是我
  • javascript document.write() 从页面中删除 html 并在空白页面中显示结果[重复]

    这个问题在这里已经有答案了 可能的重复 JavaScript document write 的替代品是什么 https stackoverflow com questions 4537963 javascript what are alte
  • 登录twitter总是进入回调失败方法

    没有显示错误 但是当单击按钮时 它总是会回调失败方法 互联网处于活动状态并且密钥有效 我使用调试器看到以下结果 E Twitter Invalid json
  • 使用 JQUERY 检测tinyMCE 文本区域

    在我们的一些表单上 我们将文本区域转换为tinyMCE 文本区域 如何在 jquery 中判断给定的文本区域是否已被转换 我注意到 tinyMCE 会在初始化时将原始文本区域的显示更改为无 然后使用 mceEditor 类创建相邻的跨度 但
  • 堆空间不足

    我遇到了堆空间问题 我的程序很简单 有两个参与者 发送和接收 发送 参与者每秒将 10000 个对象传递给 接收 而接收则发布这些对象 接收者收到的对象被保存在容器中 但容器每秒都被清空 所以容器不可能空间不足 现在 在 420000 个对
  • Node.js 传递变量

    我正在寻找一些经验丰富的 Node js 程序员的指导 我遇到的最大问题是将变量传递到单独的模块中 例如 在我的 server js 中 我有以下内容 var db mongoose createConnection localhost t
  • 移动 lambda:一旦移动捕获了仅移动类型,如何使用 lambda? [复制]

    这个问题在这里已经有答案了 这个答案 https stackoverflow com a 20669290 1858225解释了如何在 C 14 中移动捕获 lambda 中的变量 但是一旦你移动捕获了一个不可复制的对象 例如std uni
  • 文本环绕绝对定位的 div

    我知道有一些关于类似主题的问题 但它们主要涉及浮动 div 图像 我需要将图像 和 div 绝对定位 向右 但我只想让文本围绕它流动 如果我浮动 div 它会起作用 但我无法将其放置在我想要的位置 因为文本只是在图片后面流动 div cla
  • Ruby:将嵌套 Ruby 哈希转换为非嵌套哈希

    现在 我有一个服务器调用返回以下 Ruby 哈希值 id gt ct factualId gt outOfBusiness gt false publishedAt gt 2012 03 09 11 02 01 general gt nam
  • 为什么MIPS汇编器有多个寄存器用于返回值?

    我刚刚开始学习MIPS汇编程序并意识到有两个寄存器 http en wikipedia org wiki MIPS architecture Compiler register usage用于返回值 首先 我认为它的实现是因为有些语言可能返
  • 如何删除使用 distutils 安装的程序?

    我已经用这个 setup py 安装了一个 python 应用程序 usr bin env python from distutils core import setup from libyouandme import APP NAME A
  • 将 JPanel 导出到图像

    所以我一直在尝试将在 JPanel 上绘制的图像导出为图像 我一直在使用这个方法 BufferedImage image new BufferedImage getWidth getHeight BufferedImage TYPE INT
  • MySQL 表作为 FIFO/队列

    我们如何才能将Mysql表视为有限的FIFO缓冲区 队列 目标是 该表一次只能有 N 行 当插入一行时 应删除最旧的行以保持行数为 N 请建议方法 UPDATE 抱歉 伙计们 正如很多人指出的那样 我将问题从 STACK 更改为 FIFO
  • Maven 和 Jenkinsfile - 跳过前面的阶段

    我正在探索 Jenkins 的暂存功能 我想设计一个快速且精益的设置 基本上 Jenkins 提倡使用阶段来划分构建过程 并提供有关构建进度的良好视觉反馈 So the Jenkinsfile有点像 stage Build bat mvn