Мы рассматриваем возможность использования Maven для крупной многопроектной сборки, чтобы дать вам представление о размере, некоторые из подпроектов содержат несколько миллионов строк кода.
Идеальная структура была бы чем-токак:
- projectA
- projectB
- moduleAlpha (зависит от moduleBeta)
- moduleBeta (зависит от проекта A: module1)
- ...
Где каждый модуль находится на самом делеподпроект maven, и зависимости не всегда находятся на уровне артефакта (например, jars), а скорее вызывают компиляцию подпроекта по мере необходимости.
Добавление общего корня проекта позволяет выразить зависимостикак описано, например:
- project-root
- projectA
- projectB
- moduleAlpha (зависит от moduleBeta)
- moduleBeta(зависит от проекта A: module1)
- ...
Но вынуждает вас строить из проекта root.Помните, что это очень большой проект, и полная сборка не всегда желательна.
Большинство команд работают на уровне projectX , некоторые даже на уровне moduleX .
Нам нужно иногда создавать против созданного артефакта (это jar, созданный module1 ), в других случаях мы хотим построить из исходного кода.
Я взглянул на плагин реактора, который позволяет вам возобновить сборку сопределенную точку или строить только иждивенцы.Но это кажется очень ручным (хотя в некоторых случаях это очень полезно).
Я представляю собой репозиторий артефактов типа, который создает артефакт, когда он требуется.Например, сделать projectA хранилищем артефактов, на который ссылается projectB .Когда вам по какой-то причине нужно перестроить артефакт projectA , вы можете просто удалить банку.
Реализовано ли это как часть Maven или как плагин?Если нет, возможно ли это реализовать?