《Maven官方指南》 迁移引导

原文链接

迁移引导

有时候在仓库中迁移工件是很重要的事情。例如一个项目从Maven 1 转 Maven 2。Maven 1 项目传统上使用扁平存储结构,而使用Maven 2使用的深度结构。作为一个例子Maven 1 项目有一个 maven组,而Maven 2的项目中有 org.apache.maven 的组。

制造改变了仓库可以说有很深远的影响。所以最好是第一时间获取正确,它将通过一组不同类型的迁移。

  • Maven 1 to Maven 2
  • Maven 2 to Maven 2
  • Maven 1 to Maven 2

下面的目标是将groupId bar迁移 org.barfoo项目。

怎么样迁移 Maven 1 工件到一个不同的组

发布下一个版本

当下一个版本的foo被创建,你发布Maven 1 pom一直在做的事情。不幸的是Maven 1 没有自动定位和通知的概念,所以你将不得不通过正确的消息渠道来通知你的用户去改变组id

怎么迁移一个Maven 2 工件到一个不同的组

<project>
      <modelVersion>4.0.0</modelVersion>
      <groupId>bar</groupId>
      <artifactId>foo</artifactId>
      <version>1.0</version>
      <distributionManagement>
        <relocation>
          <groupId>org.bar</groupId>
        </relocation>
      </distributionManagement>
</project>

在这个我们迁移的例子,因为组已经改变了。我们只需要增加已经改变relocation节点。有关在relocation节点中允许哪些元素的信息,看pom引用

5.如果你项目使用MD5或者SHA1加密的,你现在可以使用新的加密方式创建pom文件在你的Maven 2仓库的**/bar/foo**。如果pom需要被签署,这样做很有效。 6.如果你的项目同步ibiblio,你应该现在启动同步。这可能自动依赖你项目的策略。

你的foo工件是现在可以用于Maven 2用户,可用于老的和新的组。项目使用老的组将会自动指向新的组合和警告用户更新他们的依赖关系。

发布下一个版本

当下一个版本的foo被制造,你一个发布两个Maven 2文件。首先你应该发布一个新组的org.bar的pom。

因为数据在仓库中不改变,当文件已经存在了Maven 2就不能下载pom文件。因此你将需要发布一个老组的新版本的bar。这应该是一个最小的迁移pom(作为上面第四点的描述),但是作为新版本的foo。

作为发布一个版本,你只需要发布一个组为 org.bar的Maven 2 pom文件。因为上一个版本用户已经获得改变的组id。

怎么通过一个不同的组迁移一个Maven 1的工件到Maven 2工件?

只有有趣的组织(就好比Apache软件组织)才会自动将他们的Maven 1仓库转为Maven2仓库。 根据上面的步骤4到6,就可以知道怎么迁移一个Maven 2工件到一个不同的组。

发布下一个版本

当下一个版本的foo被制造,你应该发布 Maven 1 pom正如你一直做的。除此之外,你应该发布一个组为bar的Maven 2 pom文件,版本为下一个版本和迁移部分。这步骤可以作为一个项目的第一次发布,在组id已经改变之后,但是你用户将更开心如果你花更多的时间。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/100241.html

(0)
上一篇 2021年8月21日
下一篇 2021年8月21日

相关推荐

发表回复

登录后才能评论