re: «Есть ли способ, которым я могу переопределить определение родительского pom? Я имею в виду, можно ли игнорировать определение родительского pom и иметь свой собственный дескриптор, чтобы jar-with-dependencies не мешал моему pom.»
В прошлом я немного возился с этим и никогда не мог заставить себя делать то, что хотел.Я почти уверен, что короткий ответ - «нет», но я подробно остановлюсь на том, что я пробовал.
Я создал запись pluginManagement для плагина сборки с двумя исполнениями, каждоес уникальным идентификатором и конфигурацией.Затем в плагин сборки в разделе плагинов я добавил раздел «Выполнения» ТОЛЬКО с одним выполнением с идентификатором, совпадающим с идентификатором выполнения, которое я действительно хотел запустить.Он по-прежнему выполнял оба.
Я создал запись pluginManagement для плагина сборки с одним выполнением с уникальным идентификатором и конфигурацией.Затем в разделе плагинов я создал запись для плагина сборки с одним исполнением и другим идентификатором и конфигурацией.Он по-прежнему выполнял оба.
Я создал запись pluginManagement для плагина сборки с одним выполнением с уникальным идентификатором и конфигурацией.Затем в разделе плагинов я создал запись для плагина сборки с одним исполнением и тем же идентификатором, на этот раз указав совершенно другую конфигурацию.По-видимому, он объединил две конфигурации вместе и дал результат обеих конфигураций.Примечание: в конфигурации в разделе pluginManagement использовалась запись дескриптора, а в разделе плагинов - запись descriptorRef.Я попытался добавить пустую запись дескрипторов в конфигурацию в разделе плагинов, надеясь, что она переопределит (и по сути уничтожит) использование дескриптора, указанного в разделе pluginManagement, но не повезло.
Я полагаю, что maven всегда объединяет родительские плагины с дочерними плагинами и по существу ничего не перезаписывает, жадно объединяя совпадающие теги (философия больше - лучше, поэтому он не выбирает подэлементы одного тега над подэлементами другого).
Что касается философии, то здесь есть плагин сборки, который поможет вам создавать собственные артефакты (и в maven каждый проект должен создавать один основной артефакт, не считая классификаторы источников и т. Д.), Поэтому, если нескольким детям нужно использоватьплагин сборки вы бы поместили только то, что является общим для всех из них в родительский пом.Если у вас нет ничего общего со всеми конфигурациями / выполнениями плагина maven-assembly-plug, я думаю, что вам нужно перенести конфигурацию плагина сборки в каждый из дочерних проектов.