我无法理解詹金斯奴隶的工作方式。我有一个主詹金斯和一个定义为从属的节点。我有一个 Maven 项目,我想在 Slave 上运行,但可以在 Jenkins Master 上获得报告。
我应该在 Master 或 Slave 上安装 Maven,还是两者都安装? 我是否将 Maven 项目保留在 Slave 或 Master 上,或者同时保留在两者上?我认为两者都应该是,但我不明白为什么?
使用从站时,您只需确保每个从站都安装了外部工具(在您的情况下为 Maven),并正确配置(在路径、自定义 settings.xml(如果有的话)中可用)
为了避免将作业绑定到唯一的从属设备,一个明显的最佳实践是对所有从属设备进行类似配置(即所有 Linux 从属设备都具有所有所需的工具,Windows 从属设备也相同,等等)
一旦所有工具在每个从属节点上都可用,Jenkins 就会负责在可用节点(主节点或从属节点)上运行项目。无论使用什么节点,监控、日志尾部、构建历史记录等等......对于用户来说都是透明可用的。
您甚至不需要关心插件,一旦安装在主服务器上,它们就会自动可供从服务器使用。
我认为您不需要在从属设备上安装任何
MAVEN or Jenkins
组件。当您创建从站时,您可以选择将其作为 JNLP(Java Network Launch Protocol)
文件启动。
保存此文件并将其复制到从机并启动它。唯一的先决条件是在从机上安装 JAVA。
启动后,它将与Master建立连接。我正在使用这样的硒网格。我不知道你的用例。这可能会有所帮助。
如果配置了jenkins master,则不需要在slave上安装maven,相反,Jenkins使用其Maven工具安装配置,可以动态安装Maven或直接从master执行它。我自己尝试过,效果很好。
Jenkins 允许您在管理 Jenkins > 全局工具配置下定义 Maven 安装。 您可以指定 Jenkins 应使用的 Maven 版本。如果启用“自动安装”选项,Jenkins 将在需要时在代理上动态下载并安装 Maven。
Master上安装了Maven(可用于Slave): 如果您已在 Jenkins 主服务器上配置了 Maven 安装,并且作业配置为使用该安装,则 Jenkins 可以在从服务器上远程调用 Maven,而不需要在从服务器本身上安装 Maven。
代理工作区设置: Jenkins 将必要的工具和依赖项复制到代理工作区以进行构建。 对于 Maven 构建,Jenkins 将使用其配置中定义的 Maven 安装并使其可供代理访问。
管道配置: 在管道作业中,withMaven 步骤或类似方法可以将 Maven 配置为作为管道的一部分运行,而不需要将其预安装在代理上。