把詹金斯的藏物存档

有人能给我解释一下构建过程中 艺术品的概念吗?

我有一个工作区目录,在那里我可以检出编译和运行我的 ant 脚本的代码等等。最后,在我的例子中,我得到一个可以安装的 jar 文件。这算是艺术品吗?

我应该告诉我的构建脚本将 jar 文件放在哪里?在工作区目录中?我的 jar 文件得到一个唯一的文件名,这取决于像 BUILD_ID这样的变量,我如何告诉 Jenkins 选择哪个 jar 文件?

编辑: 好吧,我试过这么做:

enter image description here

该路径在我的工作区中还不存在,因为构建脚本应该创建它,当然,.jar.properties文件也不存在,因为它们还没有生成。那为什么它会给我一个错误呢?我好像漏掉了什么。

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

214583 次浏览

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

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

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

构建工件可以是构建过程的任何结果。重要的是,不管它是在哪个客户机上构建的,它都会从工作区传输回主机(服务器) ,并在那里与构建链接一起存储。这样做的好处是,它的版本化是这样的,您只需要在您的主机上设置备份,并且即使所有构建客户端都离线,所有构件也可以通过 Web 界面访问。

可以将正则表达式定义为工件名称。在我的例子中,在构建期间,我用一个常量名称压缩了所有要存储在一个文件中的文件。

还有 Jenkins 在每次构建后都会删除工件吗?(而不是存档的文物,我知道我可以告诉它删除这些)

不,Hudson/Jenkins 本身不会在构建后清除工作区。在构建过程中,可能有一些操作会擦除、覆盖或移动构建构件。在作业配置中,在 Advanced Project Options (必须展开)中有一个名为“构建前清理工作区”的选项,该选项将在新构建开始时擦除工作区。

在 Jenkins 2.60.3中,有一种方法可以删除构建工件(而不是存档工件) ,以节省构建机器上的硬盘空间。在常规部分,选中“放弃旧的构建”和策略“日志旋转”,然后进入其高级选项。将出现另外两个选项,它们与基于天数或构建数为作业保留构建构件相关。

对我来说,有效的设置是输入1作为“与构件保持一致的最大构建 #”,然后有一个构建后操作来归档构件。这样,来自所有构建的所有工件将被归档,来自构建的所有信息将被保存,但只有最后一个构建将保留其自己的工件。

放弃旧的构建选项