Я пытаюсь запустить Сплав (ветка prkiens / markdown) из IntelliJ IDEA, чтобы я мог использовать отладчик IDEA. В этом проекте используется рабочее пространство сгибать, с которым я никогда раньше не сталкивался.
Я работаю на macOS (High Sierra).
Я загрузил проект в IntelliJ, импортировав build.gradle, и попытался настроить конфигурацию Bnd OSGi для его запуска. Я не уверен, какой файл использовать в качестве дескриптора запуска Bnd. Лучше всего было использовать org.alloytools.alloy.dist / bnd.bnd. Когда я попытался запустить его, я получил следующую ошибку:
! could not resolve the bundles: [org.alloytools.alloy.dist-5.0.0.201803130320 org.osgi.framework.BundleException: Could not resolve module: org.alloytools.alloy.dist [1]
Unresolved requirement: Import-Package: com.apple.eawt
Что я здесь делаю не так?
Обратите внимание, что сборка проекта с использованием Gradle отлично работает:
./gradlew build
java -jar org.alloytools.alloy.dist/target/org.alloytools.alloy.dist.jar
В вашем bnd.bnd
попробуйте добавить внизу:
Import-Package: \
!com.apple.eawt,\
*
Отсутствие указанной там зависимости часто может вызвать описанную вами проблему.
Я думаю, что есть Плагин IDEA bnd. Он не такой продвинутый, как поддержка Eclipse, но я думаю, что он распознает файлы bnd.
Не начинайте с проекта dist, поскольку он просто объединяет различные проекты в JAR для распространения и содержит код для создания файла pkg MacOS. Чтобы запустить графический интерфейс, просто выполните отладку класса SimpleGUI. bnd гарантирует, что все необходимые JAR-файлы создаются непрерывно (по крайней мере, на Eclipse).
Тем не менее, сэкономьте немного времени и сначала познакомьтесь с Eclipse с помощью bndtools. В Eclipse все работает автоматически. Как только вы поймете, как это работает, вы сможете легко передать эту информацию в IDEA. (И напишите вики-страницу для других!)
Обновлять Лорин добавил инструкцию на Прочти меня
Моя проблема заключалась в том, что я импортировал его как проект Gradle, а не как проект Bnd.
Думаю, это неправильный ответ, может, вы захотите его удалить?