-
Notifications
You must be signed in to change notification settings - Fork 0
Maven plugin
fkolpakov edited this page Mar 6, 2024
·
7 revisions
В проектах на be5 определены следующие mavenant-таргеты:
- be5:validate — валидация проекта (вычитывание всех файлов, базовые проверки на корректность, исполнение всего Freemarker; никаких обращений к базе не делается).
- be5:create-db — создает все таблицы базы данных (включая модули), выполняет скрипты (Pre-db.ftl, Post-db.ftl).
- be5:sync — инкрементальное обновление схемы базы данных. По умолчанию - выводит DDL, который будет использоваться для обновления структуры таблиц, удаления и добавления таблиц. Для принудительного выполнения определите BE5_FORCE_UPDATE=true. Смотри другие опции ниже.
- be5:data — выполнение скрипта по имени переданного в параметре BE5_SCRIPT. По умолчанию 'data'
- be5:generate-doc — автоматически генерирует документацию для Sphynx/ReadTheDocs (см. описание ниже).
Имеются следующие BE5-специфичные переменные:
Параметр
XML таг |
Тип, значение по умолчанию | Описание |
---|---|---|
BE5_PROJECT_PATH
<projectPath>
|
File "./" |
путь к каталогу с проектом be5 |
BE5_LOG_PATH
<logPath>
|
File | путь к каталогу с проектом be5 (без него ничего не заработает) |
BE5_DEBUG
<debug>
|
boolean false |
если "true", будет выводиться дополнительная отладочная информация в stderr |
BE5_UNLOCK_PROTECTED_PROFILE
<unlockProtectedProfile>
|
boolean false |
если "true", защищённый (protected) профиль соединения будет использоваться без дополнительных подтверждений |
be5:validate | ||
BE5_SKIP_VALIDATION
<skipValidation>
|
boolean false |
если "true", пропустить собственно валидацию (но прочие команды из списка ниже будут выполняться). |
BE5_RDBMS
<rdbmsName>
|
String |
валидация будет выполняться с использованием соответствующей СУБД (это может повлиять на выполнение условных секций в FTL, результат разворачивания макросов, включения extras и т. д.).
Возможные значения: mysql/postgres/oracle/db2/sqlserver |
BE5_CHECK_QUERY
<queryPath>
|
String | "entity.query" — если задано, текст указанного запроса после выполнения FTL будет выведен на экран). |
BE5_CHECK_ROLES
<checkRoles>
|
boolean false |
если "true", на экран будет выведен список ролей проекта, действующий в данных условиях. Может пригодиться, если часть ролей устанавливается условно через extras и хочется проверить, правильно ли отработали условия. |
BE5_CHECK_DDL
<ddlPath>
|
String | entity — если задано, DDL, необходимый для создания указанной сущности будет выведен на экран. |
BE5_SAVE_PROJECT
<saveProject>
|
boolean false |
если "true", проект будет пересохранён (только основной проект, без учёта подключенных модулей). Могут быть отсортированы или переформатированы некоторые элементы проекта. |
be5:sync | ||
BE5_FORCE_UPDATE
<forceUpdate>
|
boolean false |
|
BE5_UPDATE_CLONES
<updateClones>
|
boolean false |
если "true" - будет сгенерирован DDL для изменения структуры клонированных таблиц (у которых численный суффикс добавлен к имени таблицы). |
BE5_DELETE_CLONES
<deleteClones>
|
boolean false |
если "true" - будет сгенерирован DDL для удаления всех клонированных таблиц (у которых численный суффикс добавлен к имени таблицы). |
BE5_DELETE_UNUSED_TABLES
<deleteUnusedTables>
|
boolean false |
если "true" - будет сгенерирован DDL для удаления всех неиспользуемых таблиц.
Неиспользуемые таблицы - те таблицы, которые:
|
be5:generate-doc | ||
BE5_DOC_PATH | String | путь, куда будет сгенерирована документация |
mvn be5:sync -DBE5_FORCE_UPDATE=true
mvn be5:data -DBE5_SCRIPT="test"
Предполагается следующий сценарий использования:
- существует готовый проект Sphynx/ReadTheDocs (dir/projectDocs). Пример проекта: https://github.com/DevelopmentOnTheEdge/be5/tree/master/maven/src/test/resources/doc
- исходные rst файлы, написанные разработчиком лежат в папке dir/projectDocs/source
- из директории проекта, для которого генерируется документация запускаем:
mvn be5:generate-doc BE5_DOC_PATH=dir/projectDocs/source
- Документация будет сгенерирована в папку dir/projectDocs/source/be5
- В ней будет две поддиректории:
- tables - файлы для всех таблиц. Кроме того там лежит файл __tables.rst, который содержит список всех таблиц и который можно использовать как оглавление для структуры базы данных.
- diagrams - ER диаграммы в формате PlantUML (см. ниже)
В нем указываются:
- список диаграмм, которые нужно сгенерировать
- таблицы, которые должны войти в каждую диаграмму
- таблицы, которые можно включать в другие страницы документации.
diagrams: # блок для спецификации диаграмм, содержит массив
- diagram_1: # название диаграммы, будет сгенерирован файл dir/projectDocs/source/be5/diagrams/diagram_1.puml
tables: [comments, entities] # список таблиц, которые будут включены в диаграмму.
nested_tables: [comments, entities] # список таблиц, для которых будут сгенерированы файлы для включения в отдельные страницы
nested_tables - это отдельные файлы, генерируемые в dir/projectDocs/source/be5/tables/table_name.rstincl Такие файлы предназначены для включения в страницы документации:
.. include:: be5/tables/table_name.rstincl
- Модули
- Maven plugin
- Сервисы
- Схема данных
- Свойства
- Представления
- Операции
- Build
- Разное