Maven: Как пропустить подмодули, если профиль активирован?

Я хочу, чтобы Maven пропустил сборку всех подмодулей, если пользователь не укажет профиль сборки. https://stackoverflow.com/a/8305931/14731 объясняет, как включить модуль, если выбран профиль, но не как это исключить.

Я понимаю, что могу скопировать <modules> для встраивания во все нестандартные профили, но список модулей огромен, и у меня более 9 разных профилей, что делает обслуживание кошмаром.

Есть ли способ исключить/пропустить подмодули, если профиль активирован? В качестве альтернативы, есть ли способ сохранить список модулей в свойстве и повторно использовать его из нескольких профилей без необходимости каждый раз повторять весь список?


person Gili    schedule 28.08.2013    source источник


Ответы (1)


Вопрос 1

Есть ли способ исключить/пропустить подмодули, если профиль активирован?

Единственный способ, который я вижу, - это определять модули только в профилях, для которых они должны быть активны, возможно, включая «специальный» профиль activeByDefault, если вы хотите, чтобы они были активны по умолчанию...

Но это страдает от проблемы, что если кто-то делает

mvn verify -P+profile

Тогда активные по умолчанию профили останутся активными (т.е. модули останутся)

Примечание. -Pprofile активирует профиль с именем profile и деактивирует все активные по умолчанию профили. -P-profile деактивирует (предположительно) активный по умолчанию профиль с именем profile. -P+profile активирует имена профилей profile, не затрагивая активные профили.

вопрос 2

В качестве альтернативы, есть ли способ сохранить список модулей в свойстве и повторно использовать его из нескольких профилей без необходимости каждый раз повторять весь список?

Не то, чтобы я в курсе. Замена свойства, как правило, недоступна, пока Maven вычисляет план сборки.

person Stephen Connolly    schedule 28.08.2013