【问题标题】:non-jar SVN dependency management非 jar SVN 依赖管理
【发布时间】:2011-10-19 15:12:41
【问题描述】:

假设有两家软件公司,A 和 B。两家公司都有大约几百个 Eclipse 项目。两者都有一些应用最终产品。每个最终产品项目都有不同的依赖关系。

A 依赖 maven 进行依赖管理。它实行代码冻结,因此将项目彼此解耦,因此能够mavenize依赖关系。

B 依赖于 Eclipse Subversive 插件。对于任何特定的最终产品项目,它所依赖的所有项目都将从 SVN 中检出并包含在 Eclipse 项目构建路径中。如果一个项目依赖于 50 个项目,那么所有 50 个项目都需要修改源代码,这就是他们不使用 Maven 的原因。

两家公司合并为 AB。希望有一个类似 Maven 的依赖管理,它也可以在 SVN 存储库上工作。也就是说,假设的 POM 应该能够指定 jar 依赖(公司 A 样式)或 SVN 源代码依赖(公司 B 样式)。如果依赖项是 jar,它应该将依赖项从存储库拉到开发人员工作站的 maven 缓存中。如果依赖是 SVN 中的源代码,则应将其检出到 SVN 工作目录中。

AB 公司应该如何在技术上实现他们统一两种建筑态度的愿景?我指定“技术上”以避免涉及微观管理或修改合并公司开发人员的哲学态度的答案。

Gradle 有什么帮助吗?如果是这样,如何以及为什么?还有什么其他选择?

【问题讨论】:

    标签: eclipse svn maven-2 gradle


    【解决方案1】:

    据推测,B 公司创建的项目创建打包(jar)产品作为其交付/构建的一部分。如果是这种情况,那么 AB 公司可以创建自己的工件存储库(我的公司使用 Artifactory),并且 B 公司的项目可以手动(或自动)添加到该存储库作为版本化版本或快照。然后 A 公司项目可以将其依赖项指定为 jar 依赖项并从工件中提取。

    对于高度依赖且经常同时编辑的项目,我建议将它们设为一个根项目的子项目。

    以上我的建议都不需要使用 Gradle,但 Gradle 使得这很容易实现。

    【讨论】:

      【解决方案2】:

      svn:externals 是一种技术解决方案。然后教育滥用 svn 的开发人员,Maven 依赖项不会那么糟糕。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-27
        • 1970-01-01
        • 2022-12-17
        • 2019-05-25
        • 2015-02-22
        • 1970-01-01
        相关资源
        最近更新 更多