Шаблон проекта для приложения
Введение
Данный шаблон предназначен для создания типового проекта приложения на языке Clojure на базе операционной системы Alt Linux p10.
Шаблон обеспечивает:
-
Управление зависимостями с помощью утилиты clojure и файла
deps.edn
; -
Генерацию новых проектов на основе шаблонов с помощью инструмента deps-new;
-
Запуск целей проекта с помощью инструмента babashka и файла
bb.edn
; -
Компиляцию исходного кода Clojure и сборку дистрибутива с помощью инструмента tools-build и файла
build.clj
; -
Запуск тестов проекта с помощью инструмента kaocha и файла
tests.edn
; -
Настройку редактора с помощью файла
.editorconfig
; -
Настройку параметров для линтера
clj-kondo
в файле.clj-kondo/config.edn
; -
Настройку параметров для инструмента форматирования
cljstyle
в файле .cljstyle;
Ниже перечислены базовые цели проекта:
mike@alt01 ~ bb tasks
The following tasks are available:
clean Очистить содержимое папки target
javac Компиляция Java классов
build Собрать дистрибутив программы в виде uberjar файла
run Запуск программы через функцию -main
standalone Создать самодостаточный пакет: программа + JRE (используя jlink, JDK 9+)
deploy Опубликовать uberjar файл в публичный репозиторий
release Сделать выпуск: присвоить тэг выпуска, сделать сборку, опубликовать в репозиторий
test Запустить тесты
repl Запустить Clojure REPL
outdated Проверить устаревшие зависимости
outdated:fix Проверить устаревшие зависимости и обновить
format Форматировать исходный код
lint Проверить исходный код линтером
requirements Установить зависимости необходимые проекту
Также доступен Шаблон для библиотеки
Использование шаблона
Прежде чем воспользоваться данным шаблоном убедитесь, что в ОС установлены зависимости (см. раздел Установка зависимостей).
Для генерации нового проекта для приложения, например ru.example/myapp01
, необходимо запустить команду:
clojure -Sdeps '{:deps {org.rssys/apptemplate {:git/tag "v0.3.2" :git/sha "0fee807" :git/url "https://gitflic.ru/project/red-stars-systems/apptemplate.git"}}}' -Tnew create :template org.rssys/apptemplate :name ru.example/myapp01
или клонируйте локально этот проект и запустите из корня проекта следующую команду:
clojure -Sdeps '{:deps {org.rssys/apptemplate {:local/root "."}}}' -Tnew create :template org.rssys/apptemplate :name ru.example/myapp01 :target-dir ../myapp01
После генерации проекта смотри файл README.adoc
в корневой папке проекта.
Раздел для разработчиков
Необходимо произвести настройку окружения Red Stars Systems с помощью скрипта osinit
.
Установка JDK
Установка OpenJDK 21 в ОС Alt Linux.
jdk21-install.sh
apt-get install java-21-openjdk -y
Установка bb как утилиты clojure
Скрипт установки автоматизирует установку babashka
в качестве утилиты clojure
и clj
install-deps.sh
rsi clj-1.11.1.1413.bb
sudo bb /opt/rssys/bin/clj-1.11.1.1413.bb -l `whoami` -s -i
Установка инструмента управления шаблонами
Установка инструмента работы с шаблонами Leiningen/Boot/clj-template deps-new
clojure -Ttools install io.github.seancorfield/deps-new '{:git/tag "v0.5.2"}' :as new
Данный инструмент будет установлен в каталог ~/.gitlibs/libs/
Лицензия
Автор: Михаил Ананьев.
Данный проект распространяется под Открытой лицензией на программное обеспечение РЭД СТАРС СИСТЕМС 1.0
Текст лицензии находится в файле LICENSE или по ссылке.
Описание
Шаблон проекта для приложения на языке Clojure