Шаблон лабораторной работы

Шаблон лабораторной работы #

Васильев Андрей Михайлович, 2025

Версии презентации


Гибкость сборочной системы Gradle #

При использовании системы сборки Gradle разработчику доступно множество настроек:

  • Один проект или множество связанных проектов
  • Одна точка входа или множество точек входа
  • Возможность сборки приложения, написанного на разных языках
  • Возможность подключения множества различных дополнений
  • Возможность написать произвольный код в конфигурации Gradle

К сожалению это значительно снижает возможности по автоматизации проверки


Шаблон лабораторной работы #

При использовании шаблона:

  • Настроена разработка приложений на языке Kotlin 2.2.10
  • Используется система сборки Gradle 8.14
  • Добавлена система проверки форматирования исходного кода Ktlint 1.7.1
  • Добавлено собственное расширение, позволяющее настроить:
    • Стартовую точку приложения
    • Набор библиотек
  • Добавлено расширение для создания архива исходных кодов

Процесс приёма исходного кода #

diagram

  • Из переданной работы переносится:
    • каталог с исходными кодами src
    • файл разрешённых настроек build.properties.json
  • Все остальные файлы из исходных кодов работы не берутся

Рекомендуемый процесс разработки #

  1. Получить шаблон с сайта
  2. Открыть в среде разработки и убедиться в его базовой работоспособности
  3. При желании изменить точку входа в приложение
  4. При необходимости расширить список зависимостей приложения

Примечания

  • Пункты 3 и 4 выполняются путём редактирования файла build.properties.json
  • После его редактирования конфигурацию Gradle необходимо перезагрузить в среде разработки
  • Не надо редактировать другие файлы конфигурации Gradle, эти изменения не будут применены во время проверки работы и скорее всего приведут к невозможности проверки

Структура файла build.properties.json #

{
  "mainClass": "ru.yarsu.MainKt",
  "dependencies": [
    "com.fasterxml.jackson.module:jackson-module-kotlin:2.20.0",
    "com.jsoizo:kotlin-csv:1.10.0"
  ]
}
  • В свойстве mainClass указывается полный путь к стартовому классу или Kotlin-пакету приложения
    • В примере указан пакет ru.yarsu.Main с определённой функцией main
  • В свойстве depenencies указывается список Maven-пакетов с библиотеками
    • Необходимую библиотеку можно найти на https://mvnrepository.com/
    • Первая зависимость позволяет взаимодействовать с JSON-документами
    • Вторая зависимость предоставляет классы для работы с CSV-документами

Отправка архива #

Архив, отправляемый на проверку, должен удовлетворять следующим требованиям:

  • После распаковки его содержимое сразу можно использовать для разработки
  • Архив содержит все необходимые файлы для автоматизированной системы проверки
  • Архив не содержит результаты сборки, локальные кэши и локальные параметры IDE

Подобный архив можно создать с помощью задачи Gradle ExportDistZip:

./gradlew ExportDistZip

Данная задача создаст Zip-архив в каталоге build/distributions/, в который войдут необходимые для сдачи файлы

© A. M. Васильев, 2025, CC BY-SA 4.0, andrey@crafted.su