Files
ncore-sample/README.md

65 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Пример проекта на платформе ncore
Здесь представлена стандартная структура проекта с основными конфигурационными
файлами и классами, а также настройки IDE (Intellij Idea) и настройки SCM (git).
Для данного проекта можно использовать базу ядра.
Таски запускаются с помощью gradle wrapper. Версия Gradle - 9.0.0.
Nix
```bash
./gradlew build
```
Win
```
gradlew.bat build
```
### Основные таски
* ncoreRestoreDatabase (или nRDB) - восстановление базы из бекапа
* ncoreLoadPatches (или patch) - загрузка патчей
* ncoreApplyPatches (или update) - применение патчей
* ncoreUpdateDb (или updateDatabase) - загрузка и применение патчей
* generateSources (или codemaker) - генерация исходников
* classes - компиляция
* build - компиляция, выполнение проверок (тесты)
* distZip - генерация zip-архива дистрибутива толстого клиента (build/distributions)
* war - генерация war-архива тонкого клиента (build/libs)
* release - выпуск сборки
* run - запуск клиента (обычно при запуске исключают этап генерации кода - generateSources)
Если нужно выполнить таск, но при этом не выполнять определенные такси из его зависимостей, то можно воспользоваться ключом -x.
Запуск проекта одной командой:
```bash
./gradlew nRDB build run
```
Компиляция классов:
```bash
./gradlew classes -x generateSources
```
Запуск клиента:
```bash
./gradlew run -x generateSources
```
Запуск клиента в режиме отладки (порт 5005):
```bash
./gradlew run --debug-jvm
```
Названия тасков можно сокращать. Например, вместо generateSources можно указать gS, вместо ncoreLoadPatches nLP и т.д.
### Основные соглашения
* Группа проекта в gradle-скрипте соответствует основному пакету
* Основной пакет содержит классы Product и Version
* Файлы с версией (version.properties) и переопределенными классами (register.json)
находятся в ресурсах по следующему пути: META-INF/ncore-product/[product.name]
* В корне проекта обязательно присутствет файл ncore-properties.xml, содержайщий свойство
product.name.