Я работаю с довольно крупным проектом и хочу работать над несколькими его ветками.Один из них в настоящее время является более старой версией другого, и помпы были одинаковыми.Я хотел бы избежать изменения номеров версий в файлах pom, поскольку для этого может потребоваться перезапись всех из них, что впоследствии сделает слияние более сложным.Как проще всего это сделать, чтобы банки, созданные mvn clean install
, не переписывали файлы в другой ветке, помещенной в .mvn/repository
?
note : я работаю с git и обнаружил, что сценарий git-new-workdir
(, доступный в репозитории git source ) очень полезен, поскольку он по крайней мерепозволяет банкам, созданным в исходной иерархии дерева, сосуществовать в разных подкаталогах.
Поэтому, конечно, один простой ответ - иметь репозиторий для каждой ветви.например,
- .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-адреса?) В любом случае, кажется, что не все они загружаются, или, по крайней мере, компиляция была намного быстрее, чем ожидалось.