【问题标题】:How do I fix missing tokens error如何修复丢失令牌错误
【发布时间】:2014-01-08 19:26:49
【问题描述】:

我在尝试构建基于 maven 的开放式 ide 应用程序时收到此消息:

Some tokens required by included modules are not provided by included modules. The application will fail starting up. The missing tokens are:
   org.netbeans.modules.java.source.queries.spi.QueriesController          ref: [org.netbeans.modules.java.source.queries]
   org.netbeans.api.editor.guards.Java          ref: [org.netbeans.modules.form]
   org.netbeans.modules.editor.actions          ref: [org.netbeans.modules.editor.lib2]

我在第一行尝试了Googling,看看是否可以在那里找到答案,但我得到的只是引发错误的source code。谁能清楚地解释这个错误和/或告诉我如何解决它?

注意:它没有指定我的哪个模块导致它,但它正在“app”项目中死亡。

【问题讨论】:

    标签: java maven netbeans openide


    【解决方案1】:

    tokens 是一种不能由 maven 依赖项表达的 netbeans 依赖项。通常,API 模块需要以这种方式实现,而实现模块具有常规的编译依赖性。对于模块系统默认值,请参阅http://bits.netbeans.org/dev/javadoc/org-openide-modules/org/openide/modules/doc-files/api.html#how-vers

    通常,您必须查看模块 jar 的清单才能找到哪个模块提供了哪个令牌。

    设置基于 maven 的应用程序的最简单方法是在您的 nbm-application 打包项目中包含足够的集群依赖项。 (org.netbeans.cluster groupId)。然后,如果您不需要某些功能,请慢慢开始排除模块,看看它是否没有破坏任何东西。

    默认情况下,nbm-application 项目依赖于 'platform' 集群,你显然还需要 'ide' 和 'java'

    【讨论】:

    • 感谢您为我解释这一点,这有助于解决问题。但是在项目的pom.xml 中添加其他集群会使情况变得更糟,您知道。
    • java 集群可能需要一些其他的集群(扩展?带有 web 服务的东西?)才能工作。
    • 我被丢失的令牌 org.netbeans.modules.editor.actions 困住了。你能分享一下必须添加哪个依赖项吗?
    • 我必须添加以下集群:ide、java、extide、webcommon、websvccommon、org-netbeans-modules-jemmy、org-netbeans-modules-jellytools-platform、org-netbeans-libs- junit4 只是为了摆脱 org.netbeans.modules.editor.actions。疯了!
    【解决方案2】:

    这似乎意味着某些令牌(左侧)没有提供给需要它们的模块(右侧)。我通过 grep 查找令牌的 NetBeans 源找到了所需的模块,并查找了以 OpenIDE-Module-Provides: 开头的行,然后将该模块添加到有问题的项目中。

    我通过清理所有内容,然后从最不依赖到最依赖构建项目,直到我再次遇到错误,发现了有问题的项目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-06
      • 2013-09-04
      • 1970-01-01
      • 2019-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多