Interface TypeProvider

All Superinterfaces:
ExtensibleEnumProvider<Type>, SpiService

@Experimental @Consumer @Named public interface TypeProvider extends ExtensibleEnumProvider<Type>
Service provider interface for registering custom Type implementations.

This interface allows plugins and extensions to define and register additional artifact types beyond the standard ones provided by Maven (like jar, war, pom, etc.). Types define how artifacts are handled, including their default extension, classifier, and language.

Implementations of this interface will be discovered through the Java ServiceLoader mechanism and their provided types will be available throughout the Maven build process.

Example usage:

 public class CustomTypeProvider implements TypeProvider {
     public Collection<Type> provides() {
         return Arrays.asList(
             type("kotlin-library", "jar", "kotlin"),
             type("docker-image", "tar.gz", null)
         );
     }
 }
 
Since:
4.0.0
See Also: