Как сделать плагин для 1С:EDT для начинающего Java+1C разработчика. Часть 4

27.12.20

Разработка - EDT

Сборка репозитория P2 на основе исходников плагина 1С:EDT для поставки пользователям.

Продолжаем цикл статей по разработке плагина для 1С:EDT для начинающего Java+1C разработчика.

В первой части – //infostart.ru/1c/articles/1311121/ мы рассмотрели, что такое платформа Eclipse, и как создать плагин с помощью конструктора.

Во второй части – //infostart.ru/1c/articles/1319555/ создали плагин для валидации.

В третьей части – //infostart.ru/1c/articles/1323021/ – плагин для автоматического исправления (квикфикса)

Сейчас мы рассмотрим, как реализовать поставку обоих этих плагинов для пользователей.

С результатом разработки плагина можно ознакомиться в репозитории https://github.com/marmyshev/edt-bsl-validation

Содержание

 

Создание фичи для поставки

 

 

У нас есть два наших бандла, разделенных по бизнес-принципу. В одном используется UI, а в другом – бизнес-функциональность.

 

 

Теперь нам нужно поставлять их для пользователей.

 

 

Для этого обычно создается Feature Project (проект с фичей) – это функциональность, которую мы будем поставлять для пользователей, поскольку им не нужно знать, сколько у нас внутри бандлов, из каких кусков это все состоит.

 

 

Поэтому создаем проект с фичей (то, что мы будем поставлять пользователям), называем его org.mard.dt.bsl.validation.feature и в качестве версии устанавливаем 0.1.0.

 

 

На закладке Included Plug-ins включаем сюда созданные нами бандлы.

 

Создание репозитория для дальнейшей установки плагинов в 1C:EDT

 

 

Теперь, если мы хотим передать пользователям наш продукт, который мы создали, нам нужно сделать экспорт.

 

 

Мы говорим, что нам необходимо сделать Deployable features, потому что то, что устанавливается в платформу Eclipse и EDT – это фичи. Бандлы отдельно никак не устанавливаются. Всякая пользовательская установка дополнительных инструментов/плагинов делается через фичи.

 

 

Поэтому мы делаем экспорт наших фич. Нажимаем на кнопку Browse и указываем здесь какой-нибудь каталог для репозитория – я здесь создам каталог p2 специально для экспорта.

 

 

Переходим на вкладку Options и ставим галочку, что нам нужно создать p2 repository. Категории создавать не будем (снимаем галочку «Categorize repository)

Нажимаем кнопку Finish, и у нас происходит процесс экспорта этой фичи.

В дальнейшем из каталога p2 можно будет установить наши плагины в чистую поставку EDT.

 

Система автосборки maven для компиляции из исходников, создания фичи и создания репозитория p2

 

Maven также может компилировать проекты из исходников, создавать фичу и репозиторий p2.

 

 

В репозитории https://github.com/1C-Company/dt-example-plugins/tree/master/ видно, как организована структура проекта для работы с maven:

  • у нас есть исходники бандла – папка com.1c.dt.example.plugin.ui,

  • для него есть фича, которая делает поставку – папка com.1c.dt.example.plugin.feature.

  • есть папка с target-платформой;

  • и есть repository с дополнительной категоризацией.

 

 

В каждой папке здесь лежат pom-файлы для maven, которые нужны, чтобы описать, каким образом мы будем собирать все эти фичи, проекты, плагины и все остальное.

 

Настоятельно советую всем изучить эту схему.

 

 

В папке build находится центральный первый стартовый pom-файл для maven, который описывает, каким образом это надо собирать.

 

 

В нем указано, что дополнительно нужно взять подмодули (тут их четыре – target, плагин, фича и формирование репозиториев). И отдельно в каждом из этих проектов лежит свой соответствующий pom-файл – это такая иерархическая система сборки maven.

Вообще изучение автосборки – это большая тема. У maven есть специальный проект-расширение – maven tycho, который позволяет хорошо и качественно собирать проекты для Eclipse. С помощью maven tycho можно при сборке автоматически пробрасывать target-платформу, делать компиляцию, различные валидации – в этом его большое преимущество. Я читал, что для gradle тоже пытаются сделать такую же систему, но пока этого нет.

В целом, если вы хотите погрузиться в тему автосборки, советую изучить структуру репозитория dt-example-plugins. Я свои проекты собираю по такой же схеме.

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

mvn clean verify -f build/pom.xml

В результате проект будет скомпилирован из исходников и собран репозиторий P2.

(* в настоящее время структура репозитория https://github.com/1C-Company/dt-example-plugins/tree/master изменилась, назначение его файлов и каталогов описано в https://edt.1c.ru/dev/ru/docs/plugins/project/project-structure/, порядок сборки проекта указан в https://edt.1c.ru/dev/ru/docs/plugins/project/build-install-publish-project/, при настройке maven необходимо учесть замечания из https://edt.1c.ru/dev/ru/docs/plugins/project/env-setup/).

 

****************

Статья подготовлена совместно с редакцией Инфостарта на основе серии обучающих видео по созданию плагинов для 1С:EDT.

java EDT plugin новичок обучение tutorial

См. также

Командная разработка облачных продуктов, используя 1С:EDT

DevOps и автоматизация разработки EDT Бесплатно (free)

Даже в рамках одной компании подходы к организации командной разработки могут отличаться: методикой работы с ветками, организацией тестовых и разработческих контуров, параллельным использованием хранилищ или полным переходом на Git. Расскажем, какие варианты распределения серверных стендов и организации CI/CD выбрали для своих команд тимлиды двух отделов, и как у них происходило внедрение 1С:EDT.

05.09.2023    613    WhatIsLoveMakoveev    0    

3

Доработка типовой конфигурации в 1С:EDT. Разработка, тестирование, слияние, выпуск

DevOps и автоматизация разработки EDT Бесплатно (free)

Использование EDT дает преимущества даже для тех, кто до сих пор остается в конфигураторе. Достаточно настроить разбор основного хранилища разработки в GitConverter и автоматизировать CI на GitLab с помощью скриптов на 1С:Исполнителе. Статья о том, как задействовать для кодовой базы проекта валидацию EDT, используя встроенный механизм GitLab Code Quality, и генерировать дымовые тесты для Vanessa Automation.

23.08.2023    2660    doublesun    25    

28

EDT и полный стек CI/CD

EDT Тестирование QA Бесплатно (free)

EDT позволяет не только полноценно использовать гитфлоу при разработке – изолировать код по веткам в рамках задач и анализировать мерж-реквесты, но и нативно запускать тесты, а также видеть покрытие кода прямо в редакторе. Расскажем о том, как получить от 1С-разработки в EDT максимум пользы и автоматизировать сборку поставки из EDT с помощью Jenkins.

19.07.2023    2417    yukon    12    

30

EDT. Не активируется проектный контекст

EDT Россия Бесплатно (free)

Проблема не активирующегося контекста проекта в EDT и вариант ее обхода.

12.12.2022    1322    AntonChausov    2    

5

Куда привели 2 года работы с EDT

EDT Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

EDT позволяет работать с кодовой базой конфигураций напрямую – использовать GIT, помещать изменения в ветки и запускать тесты до попадания в основную кодовую базу, чтобы добиться «зеленых ночных сборок» для конфигурации. Разработчик из компании «Первый БИТ» Валерий Дыков на конференции Infostart Event 2021 Post Apocalypse рассказал, как безболезненно перейти на EDT и получить преимущества работы с GIT, продолжая работать в конфигураторе.

01.09.2022    6884    Begemoth80    21    

34

Ручная выгрузка и загрузка конфигурации

EDT Механизмы платформы 1С Платформа 1С v8.3 Россия Абонемент ($m)

Внешняя обработка позволяет выполнять выборочную выгрузку и загрузку объектов конфигурации 1С.

1 стартмани

26.08.2022    3776    9    user1041830    4    

9

Быстрое обновление базы 1С из XML-файлов конфигурации (EDT-GIT)

DevOps и автоматизация разработки EDT Обновление 1С Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Быстрое обновление конфигурации и базы данных 1С, вместо долгого обновления из EDT (1C:Enterprise Development Tools) при использовании хранилища GIT. Непосредственное обновлении базы на сервере баз данных (минуя сервер 1С) из XML-файлов конфигурации при помощи утилиты автономного сервера 1С - ibcmd.

1 стартмани

13.07.2022    11427    7    Bitnikov    19    

52
Оставьте свое сообщение