Files
ncore-sample/README.md

113 lines
5.2 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 - 7.6.4.
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 и т.д.
### Intellij Idea
Синхронизация настроек - Ctrl+Shift+A, далее выбрать пункт "Refresh All External Projects", или в окне Gradle нажать кнопку Refresh.
Для зависимостей создаются библиотеки с префиксом "Gradle__". По данному префиксу можно лего создть шаблоны для svn:ignore или .gitignore.
Таски можно запускать прямо из Idea. В конфигурациях запуска имеется соответствующий тип.
В Idea 14.1 появилось действие "Execute Gradle Task", которое позволяет выполнять таски без указания конфигурации запуска.
### Основные соглашения
* Группа проекта в gradle-скрипте соответствует основному пакету
* Основной пакет содержит классы Product и Version
* Файлы с версией (version.properties) и переопределенными классами (register.json)
находятся в ресурсах по следующему пути: META-INF/ncore-product/[группа проекта]
* В корне проекта обязательно присутствет файл ncore-properties.xml, содержайщий свойство
product.name.
### Создание проекта myproject на основе sample
1. Создать директорию myproject и скопировать в нее содержимое ncore-sample
2. Удалить директорию .git
3. В build.gradle изменить значение group
```
group = 'biz.redsoft.myproject'
```
4. В settings.gradle изменить значение rootProject.name
```
rootProject.name = 'biz.redsoft.myproject'
```
5. В ncore-properties.xml (в папках ./, src/main/webapp/WEB-INF и src/dist/config изменить значение product.name и product.title
```
<entry key="product.name">biz.redsoft.myproject</entry>
<entry key="product.title">MyProject title</entry>
```
6. В файлах starter и starter.bat поменять bin/sample на bin/biz.redsoft.myproject
7. В исходниках пакет biz.redsoft.sample заменить на biz.redsoft.myproject (это можно сделать в IDE)
8. В META-INF/ncore-product изменить имя диектории biz.redsoft.sample на biz.redsoft.myproject
9. Актуальная версия ядра указывается в файле gradle.properties:
```
biz.redsoft.ncore.version=1.10.339.9
```
Запуск толстого клиента осуществляется в собранном дистрибутиве (distTar или distZip) в каталоге bin командой:
start-client.bat (или ./start-client в линуксе)