Гипотетически было две компании по разработке программного обеспечения, A & B. Обе компании имеют около пары сотен проектов Eclipse. Оба имеют несколько конечных продуктов. Каждый проект конечного продукта имеет зависимость, отличную от других.
A использует maven для управления зависимостями. Он практикует замораживание кода и поэтому разъединяет проекты друг от друга и, следовательно, способен создавать зависимости.
B использует плагин Eclipse Subversive. Для любого конкретного проекта конечного продукта все проекты, от которых он зависит, будут извлечены из SVN и включены в путь сборки проекта Eclipse. Если у проекта есть зависимости от 50 проектов, все 50 проектов будут подвергаться модификации исходного кода, и поэтому они не используют Maven.
Две компании объединились в AB. Желание иметь управление зависимостями типа maven, которое также будет работать с SVN-репозиториями. То есть гипотетическое POM должно быть в состоянии указать либо зависимость jar (стиль компании A), либо зависимость исходного кода SVN (стиль компании B). Если зависимость представляет собой jar, она должна вытянуть зависимость из репозитория в maven-кеш рабочей станции разработчика. Если зависимость является исходным кодом в SVN, он должен проверить его в рабочем каталоге SVN.
Как компании AB следует придерживаться своего видения, объединяющего два подхода к построению технологически? Я указываю «технологически», чтобы избежать ответов, которые касаются микроуправления или изменения философских установок разработчиков объединенной компании.
Может ли Грэдл помочь? Если да, то как и почему? Какие еще альтернативы?