В связи со сложностью реализации алгоритма на PQ-деревьях, было решено использовать найденное готовое решение на Java. https://github.com/renatav/GraphDrawing
Однако, возникли проблемы с компиляцией проекта с использованием maven. Подробнее описанно в issue №19 - renatav/GraphDrawing#19. Автор этого issue исправил проблему с компиляцией на maven и теперь можно получить единый .jar файл на весь проект.
Для этого надо:
- Склонить репозиторий
git clone https://github.com/setzer22/GraphDrawing/
- Перейти в корневую папку
GraphDrawingMonoproject
- Вызвать скрипт
compile.sh
. Это можно сделать командойbash compile.sh
- После этих действий, создастся каталог target с нужным файлом .jar
- Данный файл нужно перенести в мой репозиторий в папку lib
В коде на Python для использования классов из Java, надо использовать их полные доменные имена, например "com.example.YourClass". Чтобы понять, какое полное имя класса у вас есть в проекте, вы можете открыть .jar файл с помощью архиватора и найти нужный класс в структуре папок. Обычно, пакеты Java организованы в соответствии с их обратными доменными именами. Например, если у вас есть класс "MyClass" в пакете "com.mycompany.mypackage", то полное имя класса будет "com.mycompany.mypackage.MyClass".