在nexus中存储maven工件的最佳实践

时间:2016-11-05 04:17:51

标签: maven gradle build version versioning

在我的公司,我们有团队致力于使用maven pom和gradle构建脚本构建的服务。我遇到的问题是,当团队构建他们的Web应用程序时,由一个团队成员创建的jar文件需要可用于其pom文件中的其他团队成员。

我们想到的是拥有一个本地nexus repo,然后将构建的jar文件推送到nexus,这样当任何其他团队成员构建时,他们也可以引用相同的jar文件。

然而,这可能会导致版本问题,因为如果两个团队成员在同一个项目中更改了不同的文件,他们可能会生成相同的jar文件。

我想知道的是他们在进行这些类型的构建和版本控制时的最佳实践。

1 个答案:

答案 0 :(得分:0)

关于如何管理这一过程,有许多不同的意见和策略。但是,有些方面比较常见。

我说有两个关键要素: *正确使用版本定义和参考 *自动构建和连接部署

如果您正在为特定工件进行工作,对于特定版本,则这些更改应全部进入工件的特定编号版本。虽然工作正在进行中,但该版本应以" -SNAPSHOT"结束。完成发布的工作后,该版本号应删除' -SNAPSHOT"。您可能还希望在Nexus服务器中拥有单独的存储库以用于" snapshot"和"发布"伪影。

关于将工件推送到Nexus,这应该始终通过自动化来完成。手动推送文物应该是非常罕见的。当为正在进行的工作进行常规构建时,应该自动部署" -SNAPSHOT"工件到快照仓库。当您的构建自动化正在运行"发布"构建时,这些工件会将发布工件部署到发布存储库。

您还需要检查许多其他选项和详细信息。仅在此过程中实施能够为您的情况提供明确价值的功能。设置一个比你需要的更复杂的过程非常容易。