Interface MavenPluginManager

  • All Known Implementing Classes:
    DefaultMavenPluginManager

    public interface MavenPluginManager
    Provides basic services to manage Maven plugins and their mojos. This component is kept general in its design such that the plugins/mojos can be used in arbitrary contexts. In particular, the mojos can be used for ordinary build plugins as well as special purpose plugins like reports.
    Since:
    3.0
    • Method Detail

      • setupPluginRealm

        void setupPluginRealm​(PluginDescriptor pluginDescriptor,
                              MavenSession session,
                              java.lang.ClassLoader parent,
                              java.util.List<java.lang.String> imports,
                              org.eclipse.aether.graph.DependencyFilter filter)
                       throws PluginResolutionException,
                              PluginContainerException
        Sets up the class realm for the specified plugin. Both the class realm and the plugin artifacts that constitute it will be stored in the plugin descriptor.
        Parameters:
        pluginDescriptor - The plugin descriptor in which to save the class realm and the plugin artifacts, must not be null.
        session - The build session from which to pick the current project and repository settings, must not be null.
        parent - The parent class realm for the plugin, may be null to use the Maven core realm.
        imports - The packages/types to import from the parent realm, may be null.
        filter - The filter used to exclude certain plugin dependencies, may be null.
        Throws:
        PluginResolutionException
        PluginContainerException
      • getConfiguredMojo

        <T> T getConfiguredMojo​(java.lang.Class<T> mojoInterface,
                                MavenSession session,
                                MojoExecution mojoExecution)
                         throws PluginConfigurationException,
                                PluginContainerException
        Looks up the mojo for the specified mojo execution and populates its parameters from the configuration given by the mojo execution. The mojo/plugin descriptor associated with the mojo execution provides the class realm to lookup the mojo from. Warning: The returned mojo instance must be released via releaseMojo(Object, MojoExecution) when the mojo is no longer needed to free any resources allocated for it.
        Parameters:
        mojoInterface - The component role of the mojo, must not be null.
        session - The build session in whose context the mojo will be used, must not be null.
        mojoExecution - The mojo execution to retrieve the mojo for, must not be null.
        Returns:
        The ready-to-execute mojo, never null.
        Throws:
        PluginConfigurationException
        PluginContainerException
      • releaseMojo

        void releaseMojo​(java.lang.Object mojo,
                         MojoExecution mojoExecution)
        Releases the specified mojo back to the container.
        Parameters:
        mojo - The mojo to release, may be null.
        mojoExecution - The mojo execution the mojo was originally retrieved for, must not be null.