Jenkins系列(三)----Maven项目配置详解

接着上一节的项目配置页面,我们来看看,具体有哪些配置选项:




可配置选项一共有九个,下面是他们的一些介绍


一、一般选项


可选配置如下


Jenkins系列(三)----Maven项目配置详解_第1张图片



1.Github Project


Jenkins系列(三)----Maven项目配置详解_第2张图片



2.Throttle builds(节流建立)


Jenkins系列(三)----Maven项目配置详解_第3张图片


3.丢弃旧的构建



Jenkins系列(三)----Maven项目配置详解_第4张图片


这决定了什么时候,如果有的话,建立这个项目的记录应该被丢弃。构建记录包括控制台输出,归档工件以及与特定构建相关的任何其他元数据。


保留较少的构建意味着在配置系统屏幕中指定的构建记录根目录中将使用更少的磁盘空间。

Jenkins提供了两个选项来确定什么时候应该丢弃构建:


    1.建立年龄:如果达到一定年龄,丢弃建造;例如,七天。
    2.构建计数:如果已经存在一定数量的构建,则丢弃最旧的构建。

这两个选项可以同时处于活动状态,因此您可以保留构建14天,但最多只能达到50个构建的限制。如果超过任一限制,则超出该限制的任何构建将被丢弃。

您还可以确保重要的构建始终保持不变,无论这里的设置如何 - 单击构建页面上的“永久保持此构建”按钮。
最后一个稳定和最后一次成功的构建也被排除在这些规则之外。


在高级部分中,可以指定相同的选项,但专门用于构建工件。如果启用,构建工件将被丢弃,因为任何超过了定义的限制的构建都将被丢弃。建筑本身仍将保留;只有相关的工件,如果有的话,将被删除。


举个例子,如果一个项目构建一些软件并产生大量安装程序,存档,您可能希望始终保持源代码控制的控制台日志和信息提交,而对磁盘空间的原因,您可能希望只保留最后三个安装建造。

这对于项目来说是有意义的,因为您可以通过构建相同的源控制提交来轻松地重新创建相同的工件。

注意,当配置更新时,Jenkins不会立即丢弃项目,或者一旦超过了配置的值;每次构建这个项目的时候,都要对这些规则进行评估。




4.参数化构建过程


Jenkins系列(三)----Maven项目配置详解_第5张图片


参数允许您提示用户输入一个或多个输入,这些输入将被传递到构建中。例如,您可能有一个项目,它通过允许用户上传一个zip文件并通过二进制文件进行测试来运行需求测试。这可以通过在这里添加一个文件参数来完成。

或者您可能有一个发布软件的项目,您希望用户输入与软件一起上传的发布说明。这可以通过在这里添加多行字符串参数来完成。

每个参数都有一个名称和某种值,这取决于参数类型。这些名称/值对将出口作为环境变量时开始生成,可以生成配置的后续部分(如生成步骤)访问这些值,例如使用${PARAMETER_NAME} 语法(或 %PARAMETER_NAME% on Windows)。

这也意味着这里定义的每个参数都应该有唯一的名称。

当一个项目被参数化时,通常的构建链接将被一个带有参数链接的构建所代替,用户将被提示为每个定义的参数指定值。如果他们选择不输入任何内容,那么构建将以每个参数的默认值开始。

如果某个构建是自动启动的,例如,如果由SCM触发器启动,则将使用每个参数的默认值。

当参数化构建在队列中时,尝试启动同一项目的另一个构建只在参数值不同时才成功,或者如果需要启用选项,则执行并发构建。

有关此功能的更多信息,请参见参数化构建文档。 



5.关闭构建




选中此选项时,将不会执行该项目的新版本。

当你想暂时阻止一个项目被建立时,这会很有帮助。例如,如果您的项目依赖于某些基础设施(例如测试服务器或源代码存储库),并且您知道它将在一段时间内不可用,则可以禁用该项目,以防止在此期间不必要的构建失败(以及任何相应的通知)。

您还可以通过单击该项目主页上的禁用项目(或启用项目)按钮来禁用(或重新启用)此项目。


6.在必要的时候并发构建




选中此选项时,可以并行执行此项目的多个构建。

默认情况下,一次只执行一个项目的单个构建 - 任何其他开始构建项目的请求将保留在构建队列中,直到第一次构建完成。


这是一个安全的默认值,因为项目通常可能需要对某些资源(如数据库或硬件)的独占访问。

但是,启用此选项后,如果有足够的构建可执行程序可以处理此项目,则该项目的多个构建将并行进行。如果任何时候没有足够的可用执行程序,则正常情况下,构建队列中将继续保留进一步的构建请求。

启用并发构建对于执行冗长测试套件的项目很有用,因为它允许每个构建包含较少数量的更改,而总周转时间会减少,因为后续构建不需要等待以前的测试运行完成。


此功能对于参数化项目也很有用,其各自的构建执行(取决于所使用的参数)可以完全独立于彼此。

每个并发执行的构建都发生在其自己的构建工作空间中,与任何其他构建隔离。默认情况下,Jenkins将“@ ”附加到工作区目录名称,例如“@ 2”。


可以通过在启动Jenkins时设置hudson.slaves.WorkspaceList Java系统属性来更改分隔符“@”。例如,“hudson.slaves.WorkspaceList = - ”会将分隔符更改为连字符。


有关设置系统属性的更多信息,请参阅wiki页面。

但是,如果启用“使用自定义工作区”选项,则所有构建将在同一工作区中执行。因此,需要谨慎,因为多个构建可能会同时更改相同的目录。



二、源码管理


Jenkins系列(三)----Maven项目配置详解_第6张图片


支持Git,Subversion两种源码管理方式。


1、Git


Jenkins系列(三)----Maven项目配置详解_第7张图片


使用方式如下:


首先输入Git库地址,然后添加凭证,选择连接类型


Jenkins系列(三)----Maven项目配置详解_第8张图片


其中"Kind"中可选的项有:





然后点击"Add"进行添加.


Jenkins系列(三)----Maven项目配置详解_第9张图片



2.Subversion


Jenkins系列(三)----Maven项目配置详解_第10张图片



使用方式和上面的Git差不多。



三、构建触发器


Jenkins系列(三)----Maven项目配置详解_第11张图片


1.在构建快照依赖时构建




如果检查过,Jenkins将解析这个项目的POMs,并查看它的快照依赖项是否也建立在这个Jenkins上。如果是这样,Jenkins将建立构建依赖关系,以便在建立依赖项作业和创建一个新的快照jar时,Jenkins将计划构建这个项目。


这对于自动执行持续集成很方便。Jenkins将检查POM中< dependency >元素的快照依赖关系,以及 and 在POM中的应用。


2.触发远程构建 (例如,使用脚本)




如果要通过访问特殊的预定义URL(方便脚本)触发新构建,请启用此选项。

此功能的一个典型示例是从源代码控制系统的钩子脚本(当某人刚刚提交到存储库中的更改)或从解析源控件电子邮件通知的脚本触发新构建时。

您需要以字符串的形式提供授权令牌,以便只有那些知道它的人才能够远程触发此项目的构建。


3.在构建其他项目之后构建


Jenkins系列(三)----Maven项目配置详解_第12张图片


设置触发器,以便在其他一些项目完成构建时,为这个项目安排一个新的构建。例如,在构建完成后运行一个广泛的测试是很方便的。

此配置补充了上游项目“后构建操作”中的“构建其他项目”部分,但在配置下游项目时更可取。


4.定期构建


Jenkins系列(三)----Maven项目配置详解_第13张图片


提供类似cron的功能来定期执行此项目。

该功能主要用于使用Jenkins作为cron替换,并不适合连续构建软件项目。 当人们首先开始持续集成时,他们通常习惯于定期安排构建,如每晚/每周使用此功能。 然而,持续整合的一点是,一旦进行更改即可开始构建,以便对变更提供快速反馈。 为此,您需要将SCM更改通知连接到Jenkins。

所以,在使用这个功能之前,停下来问问自己是否真的是你想要的。


5.对于GIT Scm轮询的GitHub钩子触发器




如果jenkins从在Git SCM部分中定义的repo中获得PUSH GitHub钩子,它将触发Git SCM轮询逻辑。因此,轮询逻辑实际上属于Git SCM。


6.调查SCM


Jenkins系列(三)----Maven项目配置详解_第14张图片


配置Jenkins来轮询SCM中的更改。

请注意,这对CVS来说是一项昂贵的操作,因为每次轮询都需要Jenkins扫描整个工作区并与服务器进行验证。 考虑设置“推”触发器,以避免此开销,如本文档所述



四、构建环境


Jenkins系列(三)----Maven项目配置详解_第15张图片


1.在构建开始之前删除工作区




如果选中,Jenkins将解析此项目的POM,并查看其快照依赖关系是否也建立在此Jenkins上。 如果是这样,Jenkins将建立构建依赖关系,以便每当构建依赖关系作业并创建一个新的SNAPSHOT jar时,Jenkins将安排此项目的构建。

这对于自动执行持续集成是方便的。 Jenkins将从POM中的元素以及POM中使用的检查快照依赖关系。

如果此行为有问题,请取消选中此选项。


其中: Schedule build when some upstream has no successful builds 




如果检查,Jenkins将安排构建,即使某些上游项目没有成功构建。 如果没有检查,如果任何其他上游项目在这个Jenkins上没有成功建成,Jenkins将不会安排一些SNAPSHOT的构建。

这对于自动执行连续集成是方便的,当项目有很多上游时,即使在其他上游已经成功建成的情况下,也可以防止触发下游的构建。 如果构建被清理或在重新启动或升级后没有执行,Jenkins可能不知道有些上游的成功构建。 同时,该项目可以构建,因为上游工件存在于MAVEN存储库中。

此行为可能会触发额外的构建。 如果此行为有问题,请取消选中此选项。



2.如果它卡住了,就中止它


Jenkins系列(三)----Maven项目配置详解_第16张图片



3.将时间戳添加到控制台输出




4.使用保密文本或文件


Jenkins系列(三)----Maven项目配置详解_第17张图片


允许您获取各种凭据,并从shell构建步骤等中使用它们。 每个绑定将定义一个环境变量。


五、发布之前的步骤


Jenkins系列(三)----Maven项目配置详解_第18张图片


六、构建


Jenkins系列(三)----Maven项目配置详解_第19张图片


Root POM:


如果您的工作区的顶级pom.xml位于第1个模块的根目录之外的某个地方,请在此处指定路径(相对于模块根目录),例如 parent / pom.xml。


如果为空,则默认为pom.xml


Goals and options:


指定要执行的目标,例如"clean install" 或 "deploy". 此字段也可以接受Maven的任何其他命令行选项,例如"-e" 或 "-DskipTests=true".


七、发布之后的步骤


Jenkins系列(三)----Maven项目配置详解_第20张图片


八、构建设置


Jenkins系列(三)----Maven项目配置详解_第21张图片


九、构建后操作


Jenkins系列(三)----Maven项目配置详解_第22张图片

你可能感兴趣的:(Jenkins)