Плагин типа Maven archetype для Gradle. Создание проектов из локального шаблона.
https://plugins.gradle.org/plugin/com.lodsve.archetype
cleanArchetype
: очистка сгенерированных папок и файлов.generate
: создание проектов из шаблона.gradle cleanArchetype generate -i
gradle cleanArchetype generate -i -Dtarget=generated -Dgroup=com.xxx.yyy -Dname=dummy-service -Dversion=1.0-SNAPSHOT
Следующие параметры будут запрошены, если они недоступны в системных свойствах:
Параметр | Описание | По умолчанию |
---|---|---|
group | имя группы в Gradle или Maven, Обязательно | |
name | имя в Gradle, artifactId в Maven, Обязательно | |
version | версия в Gradle или Maven, Обязательно | 1.0-SNAPSHOT |
author | автор, Обязательно | Administrator |
port | порт сервиса, Обязательно | 8080 |
contextPath | контекстный путь сервиса, Обязательно | / |
configServerName | имя сервера конфигурации сервиса, Обязательно | config-server |
configServerPort | порт сервера конфигурации сервиса, Обязательно | 8888 |
Следующие параметры не будут запрошены, если они недоступны в системных свойствах.| Параметр | Описание | По умолчанию |
| --------------- | -----------------------------------------------------| ---------------------------- |
| templates | Путь к папке, где находится шаблон, Обязательно | src/main/resources/templates
|
| failIfFileExist | При наличии файлов с тем же именем в папке generated
, завершиться ошибкой; иначе перезаписать | true
|
Параметры будут первоначально искаться в системных свойствах, что включает:
-Dparam1=value1 -Dparam2=value2 -Dparam3=value3
Переменные, которые могут использоваться в шаблонных файлах.
имя | описание | образец |
---|---|---|
groupId | project.group | com.lodsve |
artifactId | project.name | service-demo |
version | project.version | 1.0.0-SNAPSHOT |
author | project.author | Administrator |
servicePort | servicePort | 8080 |
serviceContextPath | serviceContextPath | / |
configServerName | configServerName | config-server |
configServerPort | configServerPort | 8888 |
cscPackageName | cscPackageName | com.lodsve.demo |
cscPackagePath | cscPackagePath | com/lodsve/demo |
Дополнительные переменные можно добавить через командную строку или программно с префиксом com.orctom.gradle.archetype.binding . |
Командная строка:
-Dparam1=value1 -Dparam2=value2 -Dparam3=value3 ...
Проперти префикс:
System.setProperty('com.lodsve.gradle.archetype.binding.param1', value1)
Часто требуется создание дополнительных переменных (привязок) на основе значений существующих переменных после их разрешения (например, когда они вводятся в интерактивном режиме), но до начала фактического процесса генерации.
Задача generate
может быть настроена с помощью процессора, который вызывается сразу перед фактической генерацией файлов, но после того как все остальные переменные были разрешены. Процессор представляет собой просто замыкание, которое принимает один аргумент — текущее конфигурационное значение привязок в виде Map
. Процессор указывается путём установки свойства bindingProcessor
задачи generate
. Пример:
generate {
bindingProcessor = { bindings ->
bindings.capitalizedName = bindings.name.capitalize()
}
}
@переменная@
__переменная__
Дополнительные выражения GString можно определить между токенами @
и __
:
@переменная.capitalize()@
__новая_Дата()__
См. GStringTemplateEngine### Генерируемый проект(ы) папка
Фиксируется на: generated
.
Файлы, которые не будут разрешаться с помощью переменных, поскольку они могут завершиться ошибкой при попытке разрешения.
Поместите списки нетекстовых файлов в файл .nontemplates
,
и поместите этот файл в папку шаблонов (например, src/main/resources/templates
) или src/main/resources/
.
Пример:
# комментарии
**/*.jar
**/*.bat
**/*.sh
**/*.zip
**/*.gz
**/*.xz
**/*.tar
**/*.7z
gradle/
.gradle/
gradlew
gradlew.bat
Использует стиль Ant. Последний слеш для директорий обязателен.
\
://aaa.bbb.ccc/xxx, удалите экранирование \
чтобы заработало..nontemplate
1.4.3
)@
. #14
clean
на cleanArchetype
, так как "Объявление пользовательских задач проверки, очистки, сборки или ассемблирования теперь запрещено при использовании плагина жизненного цикла." (https://docs.gradle.org/3.0/release-notes)packagePath
и namePath
не работали так, как ожидалось.#### 1.3.1namePackage
и namePath
(ВАЖНО: не используйте эту бugged версию).generated
.generated
уже существуют файлы с одинаковым именем.clean
, которое будет воссоздавать папку generated
.print
и println
на логгер, поэтому добавьте аргумент -i
, чтобы выводить лог.Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )