svn - Maven 版本、subversion 分支和本地存储库

标签 svn maven-2 build-process

想象以下场景:

我们在几个 svn 分支中进行了大量并行开发。有些项目是非分支的,有些是分支的。有很多相互依赖。我们还有一个本地存储库(因此没有开发人员直接下载包,我们使用自己的 maven 存储库)。

问题在于 Maven,我们必须在所有 pom 文件中指定版本。带有版本的工件存储在我们的本地存储库中。在处理多个分支时,我们将使用来自另一个分支的工件覆盖相同版本的工件(在 pom 文件中)。

如果我在 pom 文件中使用版本号来包含一些分支信息,那么依赖于许多分支模块的非分支模块就会出现问题。

是否有任何标准的解决方案/政策来应对这个问题?

为每个分支创建一个单独的存储库是一个解决方案,但是看看我们可能拥有的分支数量,它有点贵。

最佳答案

您可以为您的工件使用分类器功能吗?

我认为为此使用分类器不是标准操作程序,但它应该可以工作。我相信分类器的目的是根据特定于区域的过滤器、JDK 版本等创建不同版本的工件。但这似乎是一个非常特定于项目/环境的东西,所以我认为为此劫持它就可以了.

如果您要像这样指定您的工件:

<artifactId>artifact-a</artifactId>
<groupId>com.mygroup</groupId>
<version>1.1-SNAPSHOT</version>
<classifier>BRANCH-Q</classifier>

在您的存储库中,您将获得:
artifact-a-1.1-SNAPSHOT-BRANCH-Q.jar

然后,您可以使用分类器在依赖项中指定工件以获得正确的工件。

关于svn - Maven 版本、subversion 分支和本地存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1103052/

相关文章:

java - 什么是 maven settings.xml 文件以及它与 pom.xml 有何不同

svn - 使用 SVN 管理开发和生产服务器之间的配置文件差异

svn - 让开发人员使用 SVN 处理上次成功的构建

eclipse - Eclipse Grails-无法识别SVN导入的结构

apache-flex - 带有配置文件的条件 Maven 构建部分?

maven-2 - maven jetty 插件 - 作为守护进程运行 - 如何控制 vm 参数?

build-process - InstallShield 2010 with license - 没有自动构建系统 (CI) 作为 Windows 服务的许可证

c - 在各种机器上优化 C 库构建/编译任务的最佳方法

ant - 分发要包含在构建中的通用 ant 文件有哪些好方法?

apache - 如何将 Subversion Edge 的 Apache HTTP Server 更新到最新版本?