我正在与一个非常大的项目,并希望在其多个分支上工作。其中一个是目前另一个的老版本,而且poms是一样的。我想避免更改pom文件中的版本号,因为这可能需要重新编写所有这些文件,并且稍后会使合并更加棘手。这样做的最简单方法是什么,以便mvn clean install
生成的罐子不会覆盖.mvn/repository
中的其他分支中的罐子?多项目分支与maven
注:我与git的工作,发现git-new-workdir
脚本(在GIT源回购可用)是非常有用的在这里,它至少可以让源代码树的层次结构产生的罐子合作存在于不同的子目录中。
所以当然一个简单的答案就是每个分支都有一个存储库。例如
- .m2目录/库
- .m2目录/ BRANCH1 /库
然后一个可以运行mvn install -o -Dmaven.repo.local=~/.m2/branch1/repository
当然,这将是很好,如果能恰好与旧链接克隆存储库,以便不必下载所有文件。这可以用
$ cd .m2
$ mkdir branch1
$ find repository -type d -exec mkdir branch1/{} \;
$ find repository -type f -exec ln {} \; branch1/{} \;
但是repository.xml
似乎充满绝对目录url指针。 (为什么他们不能使用相对URL?)无论如何,它似乎并没有全部下载,或者至少编译速度比预期的要快得多。