Interface SpiService

All Known Subinterfaces:
ExtensibleEnumProvider<T>, LanguageProvider, LifecycleProvider, ModelParser, ModelTransformer, PackagingProvider, PathScopeProvider, ProjectScopeProvider, PropertyContributor, TypeProvider
All Known Implementing Classes:
DefaultLifecycleRegistry.LifecycleWrapperProvider, DefaultTypeProvider, DefaultTypeProvider

@Experimental @Consumer public interface SpiService
Marker interface to indicate services that can be provided by plugins and extensions.

This interface serves as the base for all Service Provider Interface (SPI) components in Maven. Classes implementing this interface can be discovered and loaded by Maven through the Java ServiceLoader mechanism, allowing plugins and extensions to contribute functionality to the Maven build process.

SPI services are typically registered in META-INF/services/ files corresponding to the specific service interface being implemented.

All SPI services should be annotated with Consumer to indicate they are meant to be implemented by plugins and extensions rather than used by them.

Since:
4.0.0