有人可以在构建过程中向我解释构件的概念吗?
我有工作区目录,我查看代码来编译和运行我的ant脚本等.最后,在我的情况下,我得到一个准备安装的jar文件.那被认为是神器吗?
我应该在哪里告诉我的构建脚本放置jar文件?在工作区目录中?我的jar文件根据变量等获取一个唯一的文件名BUILD_ID
,如何判断Jenkins选择哪个jar文件?
编辑:好的,所以我尝试做这样的事情:
该路径在我的工作区中尚不存在,因为构建脚本应该创建它,当然,.jar
和.properties
文件不存在,因为它们尚未生成.为什么它会给我一个错误呢?好像我错过了什么.
此外,Jenkins是否在每次构建后删除工件(不是存档的工件,我知道我可以告诉它删除它们)?否则它会很快堵塞硬盘.
您的理解是正确的,Jenkins意义上的工件是构建的结果 - 构建过程的预期输出.
常见的做法是把构建的结果为build
,target
或bin
目录.
target/*.jar
即使每个构建都有唯一的名称,Jenkins归档程序也可以使用globs()轻松获取正确的文件.
工件可以是构建过程的任何结果.重要的是它在构建它的客户端上无关紧要,它将从工作区转移回主服务器(服务器)并在那里存储一个指向构建的链接.优点是它以这种方式进行版本化,您只需在主服务器上设置备份,即使所有构建客户端都处于脱机状态,也可以通过Web界面访问所有工件.
可以将正则表达式定义为工件名称.在我的情况下,我在构建过程中将我想要存储的所有文件压缩为一个具有常量名称的文件.
另外,Jenkins会在每次构建后删除工件吗?(不是存档的工件,我知道我可以告诉它删除那些)
不,Hudson/Jenkins本身并没有在构建之后清除工作区.您可能在构建过程中执行了从您离开它们的位置擦除,覆盖或移动构建工件的操作.在高级项目选项(必须扩展)中的作业配置中有一个选项,称为"构建前清理工作区",它将在新构建开始时擦除工作区.