|
PB 9.0 автосборка из *.sr*, зависимости и т.д.
|
|||
---|---|---|---|
#18+
Всем привет! Попробую описать мои наработки в плане автосборки проекта из *.sr* файлов. Какие инструменты нам понадобятся: # Java JDK 1.8 и выше. У меня была установлена: Код: powershell 1. 2. 3. 4.
# Apache Ant 1.8 и выше (https://ant.apache.org/bindownload.cgi) ## Качаем архив и распаковываем, например в каталог c:\work\ant ## Добавляем новую переменную среды ANT_HOME = c:\work\ant , и в PATH добавляем c:\work\ant\bin ## Для проверки в консоли пишем: Код: powershell 1. 2.
# Утилита PB Deploy , которая будет нам помогать генерировать нужные файлы. Source https://github.com/a-sokolov-pb/pb-deploy PBL https://github.com/a-sokolov-pb/pb-deploy/blob/master/public/pbl.rar Binary https://github.com/a-sokolov-pb/pb-deploy/blob/master/public/binary.rar Sample https://github.com/a-sokolov-pb/pb-deploy/blob/master/public/sample.rar README https://github.com/a-sokolov-pb/pb-deploy/blob/master/README.md # Утилита PB Unit Test , для запуска юнит-тестов (см. топик https://www.sql.ru/forum/1332982/pb-unit-testy) # Любой инструмент для сборки из исходников, который можно выполнять из командной строки (в данном примере, будет использоваться PowerGen ) Идея состоит в следующем! Запуская ant`овый скрипт сборки, мы могли на выходе получить: # Автоматически сгенерированный файл ресурсов *.pbr # Если необходимо, то сгенерированный *.pbw и *.pbt файлы # Автоматически сгенерированный *.gen файл (описание сборки для PowerGen) # Собранные PBL из *.sr* и *.pbg файлов # Запущенные юнит-тесты с выводом лога # Сборка *.exe и *.pbd # Копирование всех артефактов в каталог дистрибутива # Архивация И для упрощения хранения описания проекта, была разработана утилита PB Deploy . Задача которой, на основании общего файла описания, генерировать такие файлы как: *.pbr, *.pbt, *.pbw, *.gen, ant'овый файл, который будет закачивать зависимости с репозитория. Пример файла описания структуры проекта build.package.json : Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
Описание таргетов build.xml файла: # make-environment - Создание файлов окружения по описанию build.package.json файла # clean - Очистка каталога проекта. Удаление .pbl, .pbd (из корня и каталога ./pbl), .exe и .log файлов # make-project - Таргет запускающий подряд compile , test , build и package # compile - Сборка .pbl файлов из сорцов (.sr*), с запуском синхронизации если указан ключ -DsynchIfImportCrashed=true # test - Запуск юнит-тестов. Не выполняется если указан ключ -DskipTests=true # build - Сборка .pbd и .exe файлов # package - Копирование всех артефактов в каталог и архивация # run - Запуск приложения Скопировав архив "Sample", в нем найдете каталог without_nexus . Выполняя ant'овый скрипт с указанием вышеописанных таргетов, получим необходимый нам результат. Например: Код: powershell 1. 2. 3. 4. 5. 6. 7.
Внимание! Это пример, когда утилита для юнит-тестов и генерации нужных файлов находится в корне приложения в ./utils/unit-test и ./utils/pb_deploy . Все здорово, но не очень удобно "таскать с собой утилиты" и надо следить за актуализацией самого build.xml . Плюс, например, у нас есть связанные между собой приложения, который используют некоторый набор PBD как зависимости? Этот вопрос тоже решаемый. Для этого в архиве "Sample", вы найдете каталог with_nexus с приложением, на примере которого мы разберем, как можно организовать хранение и скачивание нужных нам зависимостей. В файле build.package.json у нас добавился блок dependencies : Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33.
Здесь мы описываем какие артефакты нужно скачать с репозитория (будет сгенерирован файл build.download-dependencies.xml ). Файла build.xml и каталога ./utils нет, т.к. они также будут скачены с репозитория. Для этого добавлен "пускач" build.starter.xml , задача которого скачать файл-сборщик, который в свою очередь привязан к нужным версиям утилит. # download-template - загрузка файла-сборщика с репозитория # run-build - запуск тергетов clean и make-project файла-сборщика # update-dependencies - обновление зависимостей проекта (см. файл build.package.json ) Выполняя ant'овый скрипт с указанием вышеописанных таргетов, получим необходимый нам результат. Например: Код: powershell 1. 2. 3. 4. 5.
Внимание! Чтобы пример работал, вместо "настоящего" репозитория я использую проект на github (см. https://github.com/a-sokolov-pb/pb-repo), куда я предварительно закачал нужные артефакты. Для того чтобы переключиться на нужный вам репозиторий, достаточно поменять ссылки: # build.starter.xml - в таргете download-template # build.xml - свойство nexus.url Получилось сложна и непонятно) Надеюсь, кому-то будет полезно. P.S. Будут вопросы, то контакты есть в профиле. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2021, 23:46 |
|
|
start [/forum/topic.php?fid=15&fpage=2&tid=1334998]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 253ms |
total: | 388ms |
0 / 0 |