Как я условно включаю или исключаю файл из архетипа, когда проект сгенерирован?

Я создаю Знатока 2 архетипа для нашего проекта (Сварка). Я хотел бы смочь управлять, какие файлы помещаются в сгенерированный проект на основе значения свойства, которое определяется во время archetype:generate. Например, я предвижу следующую подсказку:

Define value for groupId: : com.example
Define value for artifactId: : myproject
Define value for package:  com.example: :
Define value for includeGradleSupport: : y

На основе значения includeGradleSupport я хочу включать (или не включать) build.gradle файл в сгенерированном проекте. Если пользователь не хочет поддержки Gradle, я не хочу загромождать сгенерированный проект с ненужными файлами.

Другой пример - то, что я, возможно, должен был бы обеспечить Гагатовый веб-фрагмент (для активации слушателя, возможно), если пользователь хочет Гагатовую поддержку.

Это - все о настройке проекта на основе того, что разработчик намеревается использовать. В то время как я мог создать целый другой архетип, иногда изменения являются столь небольшими, что было бы легче включать/исключать файл.

Есть ли способ управлять этим поведением с помощью archetype-metadata.xml дескриптор?

22
задан Matteo Guarnerio 31 March 2016 в 13:43
поделиться

3 ответа

Я могу посмотреть, какое кодирование потребуется, чтобы включить это в подключаемом модуле архетипа.

Я думаю, что сегодня основным средством для этого было бы условное создание двух разных артефактов архетипа. во время первоначальной сборки. Пользователь архетипа тогда явно использовал бы ваш архетип-с чем-то или ваш архетип-без чего.

Я знаю, что это не совсем то, что вам нужно, и я согласен, что то, что вы просите, является разумным вариантом использования.

0
ответ дан 29 November 2019 в 06:01
поделиться

Хотя я мог бы создать целый другой архетип, иногда изменения настолько незначительны, что было бы проще включить/исключить файл.

Это предложение заставило меня задуматься...

Похоже, что у вас есть структура проекта по умолчанию.
Предположим, что он большой, у него много файлов. Конечно, не стоит дублировать логику и файлы в разных архетах.

Сейчас иногда, проект имеет дополнительное поведение (связанное с Gradle).
. Это звучит типично для другого архетипа, который начинается не с нуля, а после первого. Я видел несколько примеров таких архетипов в сети. Разработчик запускает этот архетип только в том случае, если проекту нужен Graddle. :-)

Поэтому я предлагаю : создать свой архетип Graddle, который будет добавлять только файлы, относящиеся к Graddle.

.
0
ответ дан 29 November 2019 в 06:01
поделиться

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

.
1
ответ дан 29 November 2019 в 06:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: