每次构建都像是一场战斗,而归档构建产物就是打扫战场保存战利品的关键环节!
在软件开发过程中,我们经常遇到这样的场景:深夜完成的构建产物,第二天需要测试时却找不到了;或者急需回滚到上一个版本,却发现关键的jar包不知去向。这时,构建产物的归档就显得尤为重要。
Jenkins作为最流行的持续集成/持续部署(CI/CD)工具,通过其强大的流水线(Pipeline)功能和archiveArtifacts步骤,让构建产物的归档变得简单高效。
🔍 什么是构建产物归档?
简单来说,构建产物归档就是将构建过程中生成的重要文件保存起来,以便后续使用。这些文件可能是:
- 编译后的可执行文件(如JAR、WAR、EXE)
- 部署包(如ZIP、TAR.GZ)
- 文档文件(如API文档、使用手册)
- 测试报告
- 任何其他有价值的构建输出
在Jenkins中,归档的构建产物会被安全地存储并与具体的构建关联,你可以随时从Jenkins网页界面查看或下载它们。即使工作空间被清理,这些归档的产物也不会丢失,因为它们被保存在了Jenkins的特定目录下。
🛠️ 配置归档构建产物的基础
在Jenkins中归档构建产物主要依靠archiveArtifacts步骤。下面是一个最简单的示例:
pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'mvn clean package'
}
}
stage('Archive') {
steps {
archiveArtifacts artifacts: 'target/*.jar'
}
}
}
}
这个Pipeline定义了两个阶段:Build阶段使用Maven进行构建,Archive阶段则归档target目录下的所有JAR文件。
archiveArtifacts步骤的基本语法是:
archiveArtifacts artifacts: '文件路径模式', fingerprint: 布尔值
其中,文件路径模式遵循Ant风格的文件匹配语法,支持通配符:
*:匹配零个或多个字符(不包含路径分隔符)**:匹配零个或多个目录?:匹配单个字符
📚 archiveArtifacts参数详解
archiveArtifacts步骤提供了多个参数,让你更精确地控制归档行为:
artifacts(必需参数)
指定要归档的文件模式。多个模式可以用逗号分隔。
示例:
// 归档特定目录下的JAR文件
archiveArtifacts artifacts: 'target/*.jar'
// 归档多个类型的文件
archiveArtifacts artifacts: 'target/*.jar, target/*.war'
// 递归归档所有JAR文件
archiveArtifacts artifacts: '**/*.jar'
// 归档特定文件夹的内容(不包含根目录)
dir('mydir') {
archiveArtifacts artifacts: '**'
}
fingerprint(可选参数)
默认为false。设置为true时,Jenkins会记录文件的指纹信息,用于跟踪文件在不同构建之间的使用情况。这可以帮助你快速找到以下问题的答案:
- "我硬盘上的foo.jar来自FOO项目的哪个构建?"
- "BAR项目#51中使用了哪个版本的foo.jar?"
- "包含我对foo.jar #32的bug修复的BAR构建是哪一个?"

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



