Шаблон проекта для библиотеки
Введение
Данный шаблон предназначен для создания типового проекта библиотеки на языке Clojure на базе операционной системы Alt Linux p11.
Шаблон обеспечивает:
-
Управление зависимостями с помощью утилиты 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 Очистить содержимое сборочного каталога
javac Компиляция Java классов
build Собрать дистрибутив библиотеки в виде jar-файла
install Установить локально jar-файл
deploy Опубликовать jar-файл в репозиторий
release Сделать выпуск: присвоить тэг, сделать сборку, опубликовать в репозиторий
test Запустить тесты
repl Запустить Clojure REPL
outdated Проверить устаревшие зависимости
outdated:fix Проверить устаревшие зависимости и обновить
format Форматировать исходный код
lint Проверить исходный код линтером
requirements Установить зависимости необходимые проекту
Также доступен Шаблон для приложения
Использование шаблона
Прежде чем воспользоваться данным шаблоном убедитесь, что в ОС установлены зависимости (см. раздел Установка зависимостей).
Для генерации нового проекта библиотеки для артефакта, например ru.example/mylib01, необходимо запустить команду:
clojure -Sdeps '{:deps {org.rssys/libtemplate {:git/tag "v0.8.1" :git/sha "362d2248" :git/url "https://gitflic.ru/project/red-stars-systems/libtemplate.git"}}}' -Tnew create :template org.rssys/libtemplate :name ru.example/mylib01
или клонируйте локально этот проект и запустите из корня проекта следующую команду:
clojure -Sdeps '{:deps {org.rssys/libtemplate {:local/root "."}}}' -Tnew create :template org.rssys/libtemplate :name ru.example/mylib01 :target-dir ../mylib01
После генерации проекта смотри файл README.adoc в корневой папке проекта.
Раздел для разработчиков
Установка языка Clojure
Под учетной записью root нужно установить ряд программ:
-
Установка базовых программ.
apt-get update apt-get install java-21-openjdk apt-get install git apt-get install curl rlwrap unzip bash -
Установка языка Clojure.
Linux
curl -L -O https://github.com/clojure/brew-install/releases/latest/download/linux-install.sh chmod +x linux-install.sh ./linux-install.shMacOS
brew install clojure/tools/clojure -
Установка Babashka (язык Clojure для разработки скриптов).
Linux
bash < <(curl -s https://raw.githubusercontent.com/babashka/babashka/master/install)MacOS
brew install borkdude/brew/babashka
Установка инструмента управления шаблонами
Установка инструмента работы с шаблонами Leiningen/Boot/clj-template deps-new
clojure -Ttools install io.github.seancorfield/deps-new '{:git/tag "v0.10.3"}' :as new
Данный инструмент будет установлен в каталог ~/.gitlibs/libs/
Лицензия
Автор: Михаил Ананьев.
Данный проект распространяется под Открытой лицензией на программное обеспечение “Рэд старс системс”, версия 1.0.
Текст лицензии находится в файле LICENSE или по ссылке.