Пример проекта на платформе ncore
Здесь представлена стандартная структура проекта с основными конфигурационными файлами и классами, а также настройки IDE (Intellij Idea) и настройки SCM (git).
Для данного проекта можно использовать базу ядра.
Таски запускаются с помощью gradle wrapper. Версия Gradle - 4.10.3.
Nix
./gradlew build
Win
gradlew.bat build
Основные таски
- ncoreLoadPatches (или patch) - загрузка патчей
- ncoreApplyPatches (или update) - применение патчей
- ncoreUpdateDb (или updateDatabase) - загрузка и применение патчей
- generateSources (или codemaker) - генерация исходников
- classes - компиляция
- build - компиляция, выполнение проверок (тесты)
- distZip - генерация zip-архива дистрибутива толстого клиента (build/distributions)
- war - генерация war-архива тонкого клиента (build/libs)
- release - выпуск сборки
- run - запуск клиента (обычно при запуске исключают этап генерации кода - generateSources)
Если нужно выполнить таск, но при этом не выполнять определенные такси из его зависимостей, то можно воспользоваться ключом -x.
Компиляция классов:
./gradlew classes -x generateSources
Запуск клиента:
./gradlew run -x generateSources
Запуск клиента в режиме отладки (порт 5005):
./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
-
Создать директорию myproject и скопировать в нее содержимое ncore-sample
-
Удалить директорию .git
-
В build.gradle изменить значение group
group = 'biz.redsoft.myproject'
- В settings.gradle изменить значение rootProject.name
rootProject.name = 'biz.redsoft.myproject'
- В ncore-properties.xml изменить значение product.name
<entry key="product.name">biz.redsoft.myproject</entry>
-
В исходниках пакет biz.redsoft.sample заменить на biz.redsoft.myproject (это можно сделать в IDE)
-
В META-INF/ncore-product изменить имя диектории biz.redsoft.sample на biz.redsoft.myproject
-
Актуальная версия ядра указывается в файле gradle.properties:
biz.redsoft.ncore.version=1.6.69.0