ran*_*alo 4 svn build-process maven-2
想象一下以下场景:
我们在几个svn分支中进行了大量的并行开发.有些项目是不分支的,有些是分支的.有很多相互依赖.我们还有一个本地存储库(因此没有开发人员直接下载软件包,我们使用自己的maven存储库).
问题是maven我们必须在所有pom文件中指定版本.具有该版本的工件存储在我们的本地存储库中.在处理多个分支时,我们将使用来自另一个分支的工件覆盖工件的相同版本(在pom文件中).
如果我使用pom文件中的版本号也包含一些分支信息,那么依赖于许多分支模块的非分支模块就会出现问题.
是否有任何标准的解决方案/政策来应对这个问题?
为每个分支创建一个单独的存储库是一个解决方案,但是看看我们可能拥有的分支数量,它有点贵.
你可以为你的工件使用分类器功能吗?
我不认为这是使用分类器的SOP,但它应该工作.我相信分类器的意图是根据区域特定的过滤器,JDK版本等创建不同版本的工件.但这似乎是一个非常项目/环境的事情,所以我认为劫持它就好了.
如果您要指定这样的工件:
<artifactId>artifact-a</artifactId>
<groupId>com.mygroup</groupId>
<version>1.1-SNAPSHOT</version>
<classifier>BRANCH-Q</classifier>
Run Code Online (Sandbox Code Playgroud)
在您的存储库中,您将获得:
artifact-a-1.1-SNAPSHOT-BRANCH-Q.jar
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用分类器指定依赖关系中的工件以获取正确的工件.