我在尝试构建基于 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:
开头的行,然后将该模块添加到有问题的项目中。
我通过清理所有内容,然后从最不依赖到最依赖构建项目,直到再次出现错误,发现了有问题的项目。