代码之家  ›  专栏  ›  技术社区  ›  Lorin Hochstein

在MacOS上运行IDEA中的bnd结构化应用程序:未解决的需求:导入包:com。苹果eawt公司

  •  2
  • Lorin Hochstein  · 技术社区  · 7 年前

    我在试着逃跑 Alloy (prkiens/markdown分支)这样我就可以使用IDEA调试器了。此项目使用 bnd公司 工作区,我以前从未处理过。

    我正在运行macOS(High Sierra)。

    我通过导入build将项目加载到IntelliJ中。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
    
    2 回复  |  直到 7 年前
        1
  •  1
  •   Peter Kriens    7 年前

    我认为有一个 IDEA bnd plugin 它远没有Eclipse支持那么先进,但我认为它可以识别bnd文件。

    不要从dist项目开始,因为它只是将不同的项目聚合到一个JAR中进行分发,并包含创建MacOS pkg文件的代码。要运行GUI,只需调试SimpleGUI类。bnd确保连续构建所有必要的JAR(至少在Eclipse上)。

    这就是说,节省一些工作,首先使用bndtools熟悉Eclipse。在Eclipse中,一切都是自动工作的。一旦你了解了它是如何工作的,就应该很容易将这些信息传递给IDEA。(并为其他人编写wiki页面!)

    使现代化 Lorin在 readme

        2
  •  0
  •   l'L'l    7 年前

    在您的 bnd.bnd 尝试在底部添加:

    Import-Package: \
    !com.apple.eawt,\
    *
    

    没有列出依赖项通常会导致您描述的问题。