Использование PlantUML в Redmine

25.10.21

Архитектура

В статье опишу порядок настройки плагина PlantUML для Redmine 4.2

Вводные

  • Перехожу на использование PlantUML при рисовании схем.
  • Редактирую схемы через VSCode + Плагин + HTTP cервис (постоянно "разогрет" и моментально отрисовывает изменения)
  • Для ведения проектов использую redmine 4.2
  • Неудобно фиксировать схемы в redmine через скриншоты

Вариант решения

Установка

На хост с redmine установить PlantUML, для ubuntu "sudo apt install plantuml", но он относительно старой версии, поэтому после установки скачиваю jar файл из релизов оф. репозитория https://github.com/plantuml/plantuml и заменяю его в /usr/share/plantuml/plantuml.jar

Для работы требуется JRE, ставится через "sudo apt install default-jre"

 

Рабочий плагин на оф. сайте https://www.redmine.org/plugins/plantuml версии 0.4.1, но его можно найти на github https://github.com/dkd/plantuml, последняя версия 0.5.1 и видно что коммит с изменением совместимости под redmine 4.1.

Устанавливаю плагин через клонирование репозитория

cd /opt/redmine/plugins
git clone https://github.com/dkd/plantuml.git

 

После перезапуска web сервера будет ошибка, решается правкой в файле init.rb в папке плагина

requires_redmine version: '2.6'..'4.1'

на 

requires_redmine version: '2.6'..'4.2'

 

Перезапускаю web сервер, запустился нормально, но при записи диаграммы в задаче выдает ошибку, причина - отсутствие настройки плагина.

Для решения нужно в настройках "модуля" указать путь к исполняемому файлу

 

В "PlantUML binary" указать "/usr/bin/plantuml"

Использование

Во всех полях редактирования текста появляется кнопка добавления обрамления схемы

Схема генерируется либо при сохранении либо при переходе на вкладку "Предпросмотр"

 

Положительным свойством формирования диаграмм через текст является возможность версионирования.

Схема на превью сформирована текстом

 
 текст схемы

 

Например, мне нужно, чтобы вызывался не jar, а сервис. Правлю схему, что при сохранении наглядно видно в diff

 

В задаче получаю актуальное отображение схемы

 

Благодарю за внимание

См. также

Архитектура решений Программист Платформа 1С v8.3 Бесплатно (free)

В статье расскажу про относительно уникальное явление на рынке. EmplDos - полноценный сервис, который в качестве Backend использует платформу 1С. Речь пойдёт не только о технической и архитектурной стороне вопроса, а ещё и о всех трудностях и граблях, которые пришлось и до сих пор приходится преодолевать на пути к успеху.

вчера в 12:00    1328    0    comol    21    

19

Кейсы автоматизации Платформа 1С v8.3 1С:Документооборот Бесплатно (free)

Компания «Уралхим» использует 1С:Документооборот не только для хранения и согласования документов, но и для централизованного управления НСИ между 47 системами (не только на 1С); для бэкенда к мобильным приложениям охранников; и в качестве сервиса заказа справок для сотрудников. О деталях реализации нестандартных решений, разработанных в компании «Уралхим» на базе 1С:Документооборот, пойдет речь в статье.

02.08.2024    3225    0    Novattor    1    

16

Кейсы автоматизации Платформа 1С v8.3 Энергетика и ЖКХ Россия Бесплатно (free)

Делимся опытом автоматизации учета башни раздачи воды.

27.12.2023    2094    0    slavik27    5    

15

Отчеты и дашборды Бизнес-аналитик Бухгалтер Пользователь Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Бесплатно (free)

Если вы привыкли выгружать бухгалтерские операции в Excel и дополнять их там управленческой информацией, вы сможете значительно сэкономить время, получая нужные управленческие отчеты в бухгалтерской программе сразу, без лишних движений. Представляем решение для самостоятельного внедрения управленческого учета в 1С:Бухгалтерии.

11.12.2023    2768    0    Serg_Tangatarov    2    

16

Архитектура решений Программист Бесплатно (free)

Рассмотрим применение архитектурной проверки задач в процессе разработки.

30.10.2023    5325    0    ivanov660    10    

34

Кейсы автоматизации Работа с требованиями Анализ бизнес-процессов Бесплатно (free)

Автоматизировать производственные процессы в 1С:ERP без доработки типовых механизмов очень сложно. А дорабатывать типовые механизмы 1С:ERP не всегда оправданно. Решением может стать технология разработки Рабочих мест, которая позволяет автоматизировать самые сложные участки последовательно – шаг за шагом, процесс за процессом. Расскажем о том, как помочь пользователям вводить большое количество данных, не нарушая порядок ввода и полноту заполнения всех необходимых реквизитов, и как вовлечь сотрудников Заказчика в разработку и тестирование функционала Рабочих мест.

26.10.2023    2749    0    user1754524    15    

17

Кейсы автоматизации Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Когда проект внедрения ERP в крупном холдинге захлебывается в проблемах производительности и в отчаянии пользователей, нужен комплексный подход. Расскажем о битве за производительность и об организационных мероприятиях по наведению порядка в системе и коллективе.

29.08.2023    3424    0    ke_almaty    0    

15
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. r2d255 25.11.21 08:28 Сейчас в теме
А можете поделиться парой схем в каких-то небольших задачах?
2. malikov_pro 1327 25.11.21 08:44 Сейчас в теме
(1) Из того над чем сейчас работаю
Типовая схема РИБ Розницы
@startuml
left to right direction

folder ЦБ {
    package ТомЦБ {
        object ПрикрепленныйФайлЦБ
    }
}

package ПапкаДляФайловЦБ {
    object ФайлЦБ
}

folder БазаМагазина {
    package ТомРИБ {
        object ПрикрепленныйФайлРИБ
    }
    object ФайлРИБ
}

package ПапкаДляФайловМагазина {
    object ФайлРИБ_1
}

object ФайлОбменаXML

ТомЦБ ..> ПапкаДляФайловЦБ
ПрикрепленныйФайлЦБ --> ФайлЦБ

ПрикрепленныйФайлРИБ --> ФайлРИБ

ФайлЦБ ..> ФайлОбменаXML
ФайлОбменаXML ..> ФайлРИБ

ЦБ --> ФайлОбменаXML
ФайлОбменаXML --> БазаМагазина

ТомРИБ ..> ПапкаДляФайловМагазина

ФайлРИБ --> ФайлРИБ_1: Перенос файлов
@enduml
Показать


После доработки
@startuml
left to right direction

folder ОбменСсылками {
    object ЦБ
    object БазаМагазина 
    object ФайлОбменаXML
}

folder ОбменФайлами {
    object ФайлыЦБ
    object ФайлыМагазина
}

ЦБ ..> ФайлыЦБ
БазаМагазина ..> ФайлыМагазина

ЦБ --> ФайлОбменаXML
ФайлОбменаXML --> БазаМагазина

ФайлыЦБ --> ФайлыМагазина: rclone sync
@enduml
Показать
Оставьте свое сообщение