我正在探索 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
将避免编译,因为它是在前一阶段编译的并且Deploy
stage 将避免从主源代码和测试源代码进行编译,但测试将再次执行,所以我建议添加-DskipTests
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)