在哈德逊/jenkins存档的文物

有人可以向我解释构build过程中的工件的想法吗?

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

我应该在哪里告诉我的构build脚本把jar文件? 在工作区目录中? 我的jar文件得到一个独特的文件名取决于像BUILD_ID这样的variables,如何告诉jenkins哪个jar文件要挑选?

我有点困惑 – 谁能解释?

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

在这里输入图像描述

path在我的工作区中还不存在,因为ant脚本应该创build它,当然, .jar.properties文件不在那里,因为它们还没有生成。 为什么它会给我一个错误呢? 好像我错过了一些东西。

另外,Jenkins是否在每次构build之后删除工件(不是存档的工件,我知道我可以告诉它删除这些工件)? 否则会很快堵塞硬盘。

你的理解是正确的,jenkins意义上的一个神器是构build的结果 – 构build过程的预期输出。

一个常见的惯例是把构build的结果放到buildtargetbin目录中。

Jenkins存档器可以使用globs( target/*.jar )轻松地获取正确的文件,即使每个版本都有唯一的名称。

一个神器可以是你的构build过程的任何结果。 重要的是,它build立在哪个客户端上并不重要,它将从工作空间转移回到主服务器(master)(服务器),并通过链接存储到构build中。 它的优点是可以通过这种方式进行版本化,只需在主服务器上设置备份,即使所有生成的客户端都处于脱机状态,所有工件也都可以通过Web界面访问。

可以将正则expression式定义为工件名称。 在我的情况下,我压缩了所有的文件,我想存储在一个文件中的一个恒定的名称在构build过程中。

另外,jenkins是否删除每个构build后的工件? (不是存档的文物,我知道我可以告诉它删除这些)

不,哈德逊/jenkins本身并没有在build造之后清理工作空间。 您在构build过程中可能会执行一些操作,从您离开的位置擦除,覆盖或移动构build工件。 高级项目选项(必须展开)中有一个选项,称为“构build之前的清理工作区”,将在新构build开始时擦除工作区。