1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lodsve-lodsve-gradle-archetype-plugin

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 11 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 15.03.2025 15:11 d7004bb

Шаблонизатор-плагин для Gradle

Плагин типа 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 |

Системные свойства

Параметры будут первоначально искаться в системных свойствах, что включает:

  • gradle.properties: systemProp.param1=value1
  • settings.properties: systemProp.param1=value1
  • ~/.gradle/gradle.properties (не рекомендовано для этого плагина)
  • Командная строка: -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. Последний слеш для директорий обязателен.

Знаменитые проблемы

  • Не работает с файлами свойств, содержащими такие экранирования: ключ=https\://aaa.bbb.ccc/xxx, удалите экранирование \ чтобы заработало.
  • В интерактивном режиме текст запроса иногда обрезается.

Журнал изменений

1.4.7

  • Изменено для соответствия требованиям

1.4.6.3

  • Исправлено проблема #19 поддержка пустых строк и комментариев в .nontemplate

1.4.5

1.4.4

  • Исправлено проблема #16 (введено в версии 1.4.3)

1.4.3

  • Исправлено проблема для Windows.#15

1.4.2

  • Добавлено экранирование для @. #14

1.4.1

  • Добавлена возможность программно добавлять привязки. #12
  • Не переопределяйте свойства, если они уже определены. #13#### 1.4
  • Переименовано задание clean на cleanArchetype, так как "Объявление пользовательских задач проверки, очистки, сборки или ассемблирования теперь запрещено при использовании плагина жизненного цикла." (https://docs.gradle.org/3.0/release-notes)
  • Разрешение полных выражений GString передать парсеру

1.3.1.1

  • Исправлена проблема в версии 1.3.1, когда packagePath и namePath не работали так, как ожидалось.#### 1.3.1
  • Добавлены переменные: namePackage и namePath (ВАЖНО: не используйте эту бugged версию).

1.3

  • Целевая папка, где расположены сгенерированные проекты, не может быть изменена и установлена по умолчанию как generated.
  • По умолчанию генерация завершится ошибкой, если в папке generated уже существуют файлы с одинаковым именем.
  • Добавлено действие clean, которое будет воссоздавать папку generated.
  • Изменено использование print и println на логгер, поэтому добавьте аргумент -i, чтобы выводить лог.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/lodsve-lodsve-gradle-archetype-plugin.git
git@api.gitlife.ru:oschina-mirror/lodsve-lodsve-gradle-archetype-plugin.git
oschina-mirror
lodsve-lodsve-gradle-archetype-plugin
lodsve-lodsve-gradle-archetype-plugin
master