Java 在MacOS上运行IDEA中的bnd结构化应用程序:未解决的需求:导入包:com.apple.eawt
我正在尝试从IntelliJ IDEA运行(prkiens/markdown分支),以便使用IDEA调试器。这个项目使用了bnd工作区,这是我以前从未处理过的 我在运行macOS(High Sierra) 我通过导入build.gradle将项目加载到IntelliJ中,并尝试设置一个“Bnd OSGi”配置来运行它。我不确定使用哪个文件作为Bnd运行描述符。我最好的猜测是使用。当我尝试运行它时,出现以下错误:Java 在MacOS上运行IDEA中的bnd结构化应用程序:未解决的需求:导入包:com.apple.eawt,java,macos,intellij-idea,alloy,bnd,Java,Macos,Intellij Idea,Alloy,Bnd,我正在尝试从IntelliJ IDEA运行(prkiens/markdown分支),以便使用IDEA调试器。这个项目使用了bnd工作区,这是我以前从未处理过的 我在运行macOS(High Sierra) 我通过导入build.gradle将项目加载到IntelliJ中,并尝试设置一个“Bnd OSGi”配置来运行它。我不确定使用哪个文件作为Bnd运行描述符。我最好的猜测是使用。当我尝试运行它时,出现以下错误: ! could not resolve the bundles: [org.allo
! 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,\
*
没有列出依赖项通常会导致您描述的问题。我认为有一个问题,它没有Eclipse支持那么先进,但我认为它可以识别bnd文件
不要从dist项目开始,因为它只是将不同的项目聚合到一个JAR中进行分发,并包含创建MacOS pkg文件的代码。要运行GUI,只需调试SimpleGUI类。bnd确保所有必要的JAR都是连续构建的(至少在Eclipse上)
也就是说,节省一些工作,首先使用bndtools熟悉Eclipse。在Eclipse中,这一切都是自动工作的。一旦你们了解了它是如何工作的,你们就可以很容易地将这些信息传递给IDEA。(并为其他人编写wiki页面!)
更新Lorin在上添加了说明。我的问题是,我将其作为Gradle项目导入,而不是作为Bnd项目导入。我认为这不是正确答案,您可能想删除它?