gpt4 book ai didi

svn - 同步版本控制和工件存储库

转载 作者:行者123 更新时间:2023-12-02 00:27:43 26 4
gpt4 key购买 nike

虽然我们是一个使用 SVN 进行源代码控制和 Apache Ivy 进行依赖管理的 Java 阵营,但这个问题广泛适用于任何平台/语言、SCM 和工件存储库工具。

我和我的技术主管带领公司迈出了第一步,使用像 Ivy 这样的依赖管理器来管理我们所有的 JAR。我们已经建立了我们所谓的“Ivy Repo”,这是我们存放内部(由我们开发的)JAR 以及常用的依赖项(Apache JAR、Spring等)。

我们开始遇到开发人员必须更改我们内部的 Commons JAR (Commons.jar) 然后运行 ​​<ivy:publish> 的问题。在代码更改经过代码审查、提交到 SVN 并从 CI 服务器构建之前。当开发人员在一个项目中处理错误修复或新功能时,会发生这种情况,但需要对 Commons.jar 等依赖项进行修改才能完成任务。

因此,我们处于 Ivy 和 SVN 彼此不同步的情况。

显然,我们可以制定一条规则,不允许任何人在没有先与团队审查、提交和测试代码的情况下发布代码。或者,我们可以完全禁止开发人员发布。

在走任何一条路之前(我们倾向于后者),我们想知道其他团队是否遇到过同样的问题,以及实现了哪些解决方案来防止这种情况发生。

也许像 Artifactory 或 SonaType 这样的工具值得研究,但我们都没有使用它们的经验,而且它们看起来也不支持这些类型的业务规则。

简而言之:我们正在寻找一种方法来防止过早发布 JAR,以便发布始终是我们标准 code 中的最后阶段。 >> review >> commit >> CI >> deploy循环。

提前致谢!

最佳答案

Artifactory 提供细粒度 permission management这对于控制谁可以部署什么以及部署到哪里很有用;例如,您可以创建一个规则以根据文件的名称\路径(即您的 Commons.jar)拒绝发布 jar 文件,并将其应用于所有用户,但有权批准它的用户除外。

如果您需要更大的灵 active ,Artifactory 的专业版也有 User Plugins feature它基本上允许您为 Artifactory 编写 groovy 插件,并为您提供丰富的上下文和用于不同操作的 Hook 。
此外,Artifactory 的 properties metadata允许您使用自定义标签注释任何工件和文件夹,这些标签也可用于不同的条件。

将两者结合起来,尽情发挥您的想象力。

关于svn - 同步版本控制和工件存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8230962/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com