我正在开发一个Netbeans平台应用程序,它添加了一些模块。当我运行应用程序时,默认情况下会加载模块。有没有一种方法可以将模块的默认状态保持为Inactive,然后用户可以从应用程序中提供的插件工具激活所需的模块。如果是,请指导。
答案 0 :(得分:1)
文档说支持已禁用的模块。
<强>启用强>
标准模块系统允许模块处于多种状态, 由外部配置控制:
- 未知。模块根本不存在,或者JAR是 目前但其配置文件丢失或被屏蔽。
- 已禁用(常规)。 该模块存在且已知但未加载。
- 已启用(常规)。该 模块存在并加载。
- 自动加载。如果是,将启用该模块 并且只有当一些常规启用的模块将其作为依赖项时才需要 (也许是间接的)。
- 渴望。当且仅当启用该模块时 可以在不启用任何依赖项的情况下满足所有依赖项 额外的常规模块。
常规模块用于他们的时候 功能在某种程度上是可见的 - 只需启用 - 通常是因为他们进行了图层注册。从此 功能可能会或可能不会被要求它对于 用户或部署者保持对启用状态的控制。
Autoload模块用于库。如果没有&#34;客户&#34;的 图书馆,根本没有加载JAR的目的。只有当 一些常规模块需要它(直接,通过令牌等) 加载。
渴望的模块通常用于&#34;桥梁&#34;否则之间 独立的功能,表示为常规模块。 如果同时启用了这两个模块,则急切桥将为 好吧,使用一些可选服务集成它们。他们也可能是 用作通过其他渠道分发的常规模块的附加组件;要么 作为平台特定的模块,只能根据 操作系统令牌。
请注意,这些启用状态不是模块固有的, 这就是为什么它们没有在JAR中指明;他们是其中的一部分 部署。另一个模块系统可能不会使用它 区别。特别是,通过JNLP或OSGi部署的模块是 只是通过包含在部署集中来启用,或者 在容器的摆布下。
方法1
如果您使用maven,我会尝试像这样配置插件。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>nbm-maven-plugin</artifactId>
<version>3.13</version>
<extensions>true</extensions>
<configuration>
<moduleType>disabled</disabled>
</configuration>
</plugin>
方法2
如果这不起作用,请在src / main / nbm目录中创建一个名为module.xml的文件,并在其中添加以下行。
<?xml version="1.0" encoding="UTF-8"?>
<nbm>
<moduleType>disabled</moduleType>
</nbm>
然后使用清单文件注册模块xml。
OpenIDE-Module-Layer: ro/emilianbold/nbmagazine/tutorial/layer.xml
注意:如果我没有错,则从mvn-nbm-plugin 3.7开始不推荐使用module.xml。因此,如果您使用的是最新版本,则可能无效。对于最新版本,建议采用第一种方法。