Для образовательных целей я создал макет проекта, как это (плоский, чтобы затмить номера лучше):Проект Maven - 'all' или 'parent' для агрегации?
-product
|
|-parent
|-core
|-opt
|-all
Родитель содержит совокупный проект с ядром, выбор и все. Core реализует обязательную часть приложения. Опция - необязательная часть. Все предполагается объединить ядро с opt, и эти два модуля указаны как зависимости.
Я сейчас пытаюсь сделать следующие артефакты:
- продукта core.jar
- продукта ядро-src.jar
- продукта ядро-с-dependencies.jar
- продукт-opt.jar
- продукта неавтоматического src.jar
- продукта неавтоматического с-dependencies.jar
- продукта all.jar
- продукта все-src.jar
- продукта все-с-dependencies.jar
Большинство из них достаточно просты в изготовлении. Однако у меня есть некоторые проблемы с совокупными артефактами. Мне удалось сделать product-all-src.jar с пользовательским дескриптором сборки в модуле «все», который загружает источники для всех нетранзитивных депо, и это отлично работает. Этот метод также позволяет мне создавать продукт-all-with-dependencies.jar.
Недавно я выяснил, что вы можете использовать исходную совокупную цель в исходном плагине для объединения источников всего агрегатного проекта. Это также справедливо для плагина javadoc, который также агрегируется через использование родительского проекта.
Так что я разорван между модулем «все» и отрывом модуля «все» и просто использую «родительский» модуль для всей агрегации. Нечестно иметь некоторые совокупные артефакты, произведенные в «родительском», а другие - «все». Есть ли способ сделать «продукт-все» jar в родительском проекте или агрегировать javadoc во всем проекте? Или я должен просто сохранить оба?
Благодаря
Спасибо за подсказку. Я просто посмотрел на него, и кажется, что источник maven следует за общей макетой, которую я предложил, однако без сглаживания дерева, как вы указали. Конечная сборка IMO не очень чистая, она просто выполняет регулярное выражение grep для всех исходных файлов в каталоге «../», не так просто, если вы хотите, чтобы источники из зависимостей 3: 1 стороны и т. Д. Также не соответствует тому, как javadoc агрегатор (через родительский проект). Мне кажется, что мне не хватает функциональности, я попробую написать альтернативный подход, когда я экспериментирую с некоторыми. Спасибо за указатель. –
BTW, сборник src можно найти по адресу http://svn.apache.org/repos/asf/maven/maven-3/trunk/apache-maven/src/main/assembly/src.xml –