Managing plug-in dependencies
The <require> element in a plugin.xml file is used to create a dependency on another plug-in. The <require> element requires the plugin attribute in order to reference the dependency.
If the current plug-in requires a plug-in with id="plugin-id" before it can be installed, it would include the following:
Prerequisite plug-ins are integrated before the current plug-in is integrated. This does the right thing with respect to XSLT overrides. If your plug-in is a specialization of a specialization, it should <require> its base plug-ins, in order from general to specific.
If a prerequisite plug-in is missing, a warning will be printed during integration. To suppress this, but keep the integration order if both plug-ins are present, add importance="optional" to the <require> element.
If your plug-in can depend on any one of several optional plug-ins, separate the plug-in ids with a vertical bar. This is most useful when combined with importance="optional":
The following plug-in will only be installed if the plug-in with id="com.example.primary" is available. If that one is not available, a warning will be generated during the integration process.
<plugin id="com.example.builds-on-primary"> <!-- ...extensions here --> <require plugin="com.example.primary"/> </plugin>
The following plug-in will only be installed if either the plug-in with id="pluginA" or the plug-in with id="pluginB" are available. If neither of those are installed, the current plug-in will be ignored.
<plugin id="pluginC"> <!-- ...extensions here --> <require plugin="pluginA|pluginB" importance="optional"/> </plugin>