Maven3和Jenkins:部署多个Classifier

Maven3和Jenkins:部署多个Classifier,maven,deployment,jenkins,classification,snapshot,Maven,Deployment,Jenkins,Classification,Snapshot,我们目前正在从maven2迁移到maven3。 现在,在我们的一个共享项目中,maven3的新“快照”策略出现了问题。 该项目提供了不同的配置,使用过滤器为不同的环境(dev、int、production)设置不同的设置 在我们的Jenkins buildserver中,我们在本地公司repo中生成并部署了这三个分类器:maven主要目标中的开发人员,其他作为post步骤 在maven2中,这没有问题,因为在我们的存储库中部署之后: artifact-1.2.0-SNAPSHOT-dev.ja

我们目前正在从maven2迁移到maven3。 现在,在我们的一个共享项目中,maven3的新“快照”策略出现了问题。 该项目提供了不同的配置,使用过滤器为不同的环境(dev、int、production)设置不同的设置

在我们的Jenkins buildserver中,我们在本地公司repo中生成并部署了这三个分类器:maven主要目标中的开发人员,其他作为post步骤

在maven2中,这没有问题,因为在我们的存储库中部署之后:

  • artifact-1.2.0-SNAPSHOT-dev.jar
  • artifact-1.2.0-SNAPSHOT-int.jar
  • 工件-1.2.0-SNAPSHOT-prod.jar
对于maven3,我们现在有了时间戳版本:

  • 工件-1.2.0-20140212.103043-1-dev.jar
  • 工件-1.2.0-20140217.174231-2-int.jar
  • 工件-1.2.0-20140311.125512-3-prod.jar
现在,使用分类器dev或int的其他项目的构建中断,因为最新的快照版本是第三个版本(prod),并且无法从我们的存储库解析dev和int

据我所知,不可能告诉maven3在没有时间戳的情况下部署“好的旧”快照。是否有一个解决方案可以在一个maven3调用中处理所有配置?或者我们如何将Jenkins配置为“一个快照”

提前谢谢

更新1

如下所示,配置Post步骤:

Maven目标:

  • Maven版本:3.1.1
  • 目标:清洁部署-品脱
Maven目标:

  • Maven版本:3.1.1
  • 目标:干净部署-Pprod

据我所知,Maven 3生成的工件名称中带有时间戳,如artifact-1.2.0-20140212.103043-1-dev.jar,这导致依赖构建失败

由于需要Maven 3使用命名约定artifact-1.2.0-SNAPSHOT-dev.jar生成工件,因此可以通过在生成这些工件的相应POM.xml中使用“finalName”标记来实现

问候


Jyotsna

这不会像你计划的那样起作用。正如您所说,在Maven 3中没有办法使用非时间戳存储库

您有两个选择:

  • 或者以在一个构建中创建所有分类器的方式调整构建(可能使用不同的模块而不是不同的分类器)
  • 或者创建自己的部署机制

  • 我强烈推荐解决方案1。

    这是相当旧的Jenkins版本中的一个老错误,请参阅。你用哪个詹金斯版本?是1.549版本。我更新到1.554,结果相同。如何部署?我假设使用后构建步骤,对吗?是的,我使用两个后构建步骤:一个用于int,一个用于prod。为什么不在一个后构建步骤中简单地部署所有工件?这应该可以解决您的问题。问题不在“安装”阶段。这里我在本地存储库中有快照。问题在于“部署”阶段。我也尝试一下你的建议,但它不起作用:它上传了下一个时间戳版本。嗯,这就是我的猜测。感谢blackbuild的帮助。