如何修复缺少令牌错误



我在尝试构建基于 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]

尝试在谷歌上搜索第一行,看看我是否可以在那里找到答案,但我得到的只是引发错误的源代码。 任何人都可以清楚地解释此错误和/或告诉我如何解决它吗?

注意:它没有指定我的哪个模块导致了它,但它正在"app"项目上消亡。

令牌

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

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

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

默认情况下,nbm应用程序项目依赖于"平台"集群,显然还需要"ide"和"java"。

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

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

最新更新