EN · DE · RU · FR · ES

#2769: build.gradle.kts

projectforge-wicket/build.gradle.kts Скрипт сборки Gradle (Kotlin DSL) · projectforge-wicket/build.gradle.kts 51 строка · 45 кода · 0 комментариев · 6 пустых
Конфигурация сборки Gradle для модуля projectforge-wicket — веб-уровня представления на основе Wicket, который обрабатывает серверные HTML-страницы, компиляцию LESS в CSS и интеграцию с FullCalendar. Этот скрипт сборки на Kotlin DSL объявляет граф зависимостей модуля (связывая общие, бизнес- и REST-подмодули), настройки компиляции Kotlin для JVM 17 и правила обработки ресурсов, которые копируют шаблоны, JavaScript и CSS из исходных каталогов Java в выходные данные сборки вместе со статическими ресурсами веб-приложения.

Архитектура

Граф зависимостей

Модуль wicket зависит от трёх основных подмодулей ProjectForge: projectforge-common (утилиты и общая инфраструктура), projectforge-business (бизнес-логика и доступ к данным) и projectforge-rest (уровень REST API). Внешние зависимости включают расширения Wicket, интеграцию Spring и тестовую среду (все доступны через каталог версий Gradle с псевдонимами libs.*), Jakarta Servlet API, стандартную библиотеку Kotlin, дополнения WicketStuff (поддержка HTML5, компонент выпадающего списка Select2), Gson для сериализации JSON и Mozilla Rhino (выполнение JavaScript на стороне сервера).

Компиляция Kotlin

Целевая платформа — JVM 17, что соответствует стандарту монорепозитория. Исходный код Kotlin сосуществует с унаследованным кодом Java в каталогах src/main/kotlin и src/main/java соответственно.

Обработка ресурсов

Пользовательская конфигурация задачи ProcessResources объединяет веб-ресурсы из двух корневых источников: src/main/java (содержит HTML-шаблоны Wicket, CSS, JS-файлы и шаблоны .tpl вместе с исходниками Java) и src/main/webapp (статические ресурсы, помещаемые в выходной каталог static/). Стратегия DuplicatesStrategy.EXCLUDE обрабатывает конфликты, когда оба каталога содержат ресурсы с одинаковыми именами.

Миграция каталога версий

Ссылки на зависимости были упрощены с многословных координат в стиле Maven (libs.org.apache.wicket.wicket.myextensions) до более коротких записей каталога (libs.org.apache.wicket.myextensions) в ходе модернизации Gradle — избыточный сегмент wicket. был удалён из ключей каталога.

История Git

КоммитЧто изменилось
e21feaa6109b16bc25Серия из пяти коммитов по улучшению сборки Gradle, которые установили, протестировали и постепенно исправили конфигурацию сборки модуля. Наиболее значимое функциональное изменение (в 84a5eb6ae) — упрощение ключей каталога версий зависимостей: удаление избыточного сегмента пространства имён wicket. из псевдонимов библиотек Wicket и WicketStuff (например, libs.org.apache.wicket.wicket.myextensionslibs.org.apache.wicket.myextensions). Остальные коммиты стабилизировали плагин соглашений модуля, настройки компиляции Kotlin и стратегию обработки ресурсов.