# Пример проекта на платформе 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 ``` biz.redsoft.myproject MyProject title ``` 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 в линуксе)