91 lines
4.2 KiB
Markdown
91 lines
4.2 KiB
Markdown
# Пример проекта на платформе ncore
|
||
|
||
Здесь представлена стандартная структура проекта с основными конфигурационными
|
||
файлами и классами, а также настройки IDE (Intellij Idea) и настройки SCM (git).
|
||
|
||
Для данного проекта можно использовать базу ядра.
|
||
|
||
Таски запускаются с помощью gradle wrapper. Версия Gradle - 2.3.
|
||
|
||
Nix
|
||
```bash
|
||
./gradlew build
|
||
|
||
```
|
||
Win
|
||
```
|
||
gradlew.bat build
|
||
|
||
```
|
||
|
||
### Основные таски
|
||
|
||
* ncoreLoadPatches (или path) - загрузка патчей
|
||
* ncoreApplyPatches (или update) - применение патчей
|
||
* ncoreUpdateDb - загрузка и применение патчей
|
||
* generateSources (или codemaker) - генерация исходников
|
||
* classes - компиляция
|
||
* build - компиляция, выполнение проверок (тесты)
|
||
* distZip - генерация zip-архива дистрибутива толстого клиента (build/distributions)
|
||
* war - генерация war-архива тонкого клиента (build/libs)
|
||
* release - выпуск сборки
|
||
* run - запуск клиента (обычно при запуске исключают этап генерации кода - generateSources)
|
||
|
||
|
||
Если нужно выполнить таск, но при этом не выполнять определенные такси из его зависимостей, то можно воспользоваться ключом -x.
|
||
|
||
Компиляция классов:
|
||
```bash
|
||
./gradlew classes -x generateSources
|
||
```
|
||
Запуск клиента:
|
||
```bash
|
||
./gradlew run -x generateSources
|
||
```
|
||
|
||
Названия тасков можно сокращать. Например, вместо 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 = 'myproject'
|
||
```
|
||
|
||
5. В ncore-properties.xml изменить значение product.name
|
||
```
|
||
<entry key="product.name">myproject</entry>
|
||
```
|
||
6. В исходниках пакет biz.redsoft.sample заменить на biz.redsoft.myproject (это можно сделать в IDE)
|
||
|
||
7. В META-INF/ncore-product изменить имя диектории biz.redsoft.sample на biz.redsoft.myproject
|