【问题标题】:Is it possible to deploy multiple modules respectively using one build job with multiple modules via Jenkins?是否可以通过 Jenkins 使用具有多个模块的一个构建作业分别部署多个模块?
【发布时间】:2012-11-26 18:08:42
【问题描述】:

我正在尝试使用 jenkins 构建一个包含多个模块的作业,并将这些多个模块分别部署在一个盒子上。简化后的maven依赖结构如下图:

|-- 一个 | `-- pom.xml |-- 乙 | `-- pom.xml |-- C | `-- pom.xml |-- D | `-- pom.xml

我成功获得了 B、C、D 的 3 个发布包。但是,当我在每个单独的部署作业中表示要部署的模块时,jenkins 不支持分别部署这 3 个包。相反,一个构建作业只有一个构建 ID,并且只有 A 是 jenkins 部署的合法可交付成果。除了使用链式构建作业进行多次构建之外,还有什么想法或解决方法吗?

【问题讨论】:

  • 您应该定义“部署”。你的意思是Maven“部署”阶段吗?如果是这样,当您的 Jenkins 构建作业配置为执行时,它们会为每个模块执行,例如而不是“mvn install”,而是执行“mvn deploy”,它会为所有模块执行。
  • jenkins 构建作业一次只生成一个构建 ID,我要问的问题是我们如何使用该构建 ID 进行部署(正如我在问题中所述,部署多个模块分别在一个盒子(unix)上。)对于每个特定的嵌套子模块,而不是构建ID代表的父工件。

标签: maven deployment build jenkins jenkins-plugins


【解决方案1】:

尚不清楚您是否正在寻找过滤“罐子”,即在“部署”阶段推出的工件。如果您正在寻找过滤,您可以尝试设置排除模式或包含模式(注意 - 我们使用的是 artifactory 插件) 构建后操作的屏幕截图 -

【讨论】:

  • 我假设您使用的示例是针对所有工件都在同一级别上的场景,那么您可以排除其中一些。但我的问题是我希望分别部署子模块(它们是正在构建的工件(父)下的一层)而不是父模块。
  • 战争模块模块工件比父级低一级。
【解决方案2】:

使用 maven-deploy-plugin 将所有模块(无论它们位于哪个级别)自动部署到远程 Maven 存储库。

它是easy to use,只需将<distributionManagement> 部分添加到您的父pom 中,如有必要,在您的settings.xml 中配置<server> 部分,并将@​​987654324@ 目标添加到您的Jenkins 构建作业中。

maven-deploy-plugin 将为您的 reactor 项目的每个模块自动执行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-02
    • 1970-01-01
    • 2021-07-19
    • 1970-01-01
    • 2019-06-12
    相关资源
    最近更新 更多