首页 文章

存档Jenkins中的工件

提问于
浏览
114

有人可以在构建过程中向我解释 artifacts 的想法吗?

我有工作区目录,我查看代码来编译和运行我的ant脚本等 . 最后,在我的情况下,我得到一个准备安装的jar文件 . 那被认为是神器吗?

我应该在哪里告诉我的构建脚本放置jar文件?在工作区目录中?我的jar文件根据 BUILD_ID 这样的变量得到一个唯一的文件名,这样,我怎么能告诉Jenkins要选择哪个jar文件?

编辑:好的,所以我尝试做这样的事情:

enter image description here

该路径在我的工作区中尚不存在,因为构建脚本应该创建它,当然, .jar.properties 文件不存在,因为它们没有丢失的东西 .

此外,Jenkins是否在每次构建后删除工件(不是存档的工件,我知道我可以告诉它删除它们)?否则它会很快堵塞硬盘 .

4 回答

  • 10

    您的理解是正确的,Jenkins意义上的工件是构建的结果 - 构建过程的预期输出 .

    一个常见的约定是将构建的结果放入 buildtargetbin 目录中 .

    即使每个构建都有唯一的名称,Jenkins归档程序也可以使用globs( target/*.jar )轻松获取正确的文件 .

  • 59

    工件可以是构建过程的任何结果 . 重要的是它在构建它的客户端上无关紧要,它将从工作区转移回主服务器(服务器)并在那里存储一个指向构建的链接 . 优点是它以这种方式进行版本化,您只需在主服务器上设置备份,即使所有构建客户端都处于脱机状态,也可以通过Web界面访问所有工件 .

    可以将正则表达式定义为工件名称 . 在我的情况下,我在构建过程中将我想要存储的所有文件压缩为一个具有常量名称的文件 .

  • 7

    此外,Jenkins是否在每次构建后删除工件? (不是存档的工件,我知道我可以告诉它删除那些)

    不,Hudson / Jenkins本身并没有在构建之后清除工作区 . 您可能在构建过程中执行了从您离开它们的位置擦除,覆盖或移动构建工件的操作 . 在高级项目选项(必须扩展)中的作业配置中有一个选项,称为“构建前清理工作区”,它将在新构建开始时擦除工作区 .

  • 1

    在Jenkins 2.60.3中,有一种方法可以删除构建工件(而不是存档工件),以便在构建计算机上节省硬盘空间 . 在“常规”部分中,选中策略“日志轮换”的“放弃旧版本”,然后进入“高级”选项 . 将出现另外两个选项,用于根据天数或构建数保留作业的构建工件 .

    适合我的设置是输入1作为“Max#of builds with artifact with artifacts”,然后进行构建后操作以归档工件 . 这样,所有构建的所有工件都将被存档,构建中的所有信息都将被保存,但只有最后一个构建才会保留自己的工件 .

    Discard old builds options

相关问题