如何修复丢失的令牌错误

时间:2013-12-20 01:56:12

标签: java maven netbeans openide

我在尝试构建基于maven的open-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”项目上死亡。

2 个答案:

答案 0 :(得分:2)

令牌是一种netbeans依赖关系,不能由maven依赖关系表达。通常,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'

答案 1 :(得分:0)

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

我发现项目有问题,通过清理所有内容,然后将项目从最少依赖到最多,直到我再次收到错误。