diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/Type.java b/api/maven-api-core/src/main/java/org/apache/maven/api/Type.java index 5f702b5ed70..c5828094509 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/Type.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/Type.java @@ -60,6 +60,13 @@ public interface Type extends ExtensibleEnum { */ String JAR = "jar"; + /** + * Artifact type name for a fat-JAR file that can be only on the class-path. + * The fat-JAR is a self-contained JAR and its transitive dependencies will not be resolved, if any. + * This type is new in Maven 4. + */ + String FATJAR = "fatjar"; + /** * Artifact type name for a JAR file to unconditionally place on the class-path. * If the JAR is modular, its module information are ignored. diff --git a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/type/DefaultTypeProvider.java b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/type/DefaultTypeProvider.java index fb833e687d5..8f98250833b 100644 --- a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/type/DefaultTypeProvider.java +++ b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/type/DefaultTypeProvider.java @@ -57,6 +57,7 @@ public Collection types() { JavaPathType.PATCH_MODULE), new DefaultType(Type.MODULAR_JAR, Language.JAVA_FAMILY, "jar", null, false, JavaPathType.MODULES), new DefaultType(Type.CLASSPATH_JAR, Language.JAVA_FAMILY, "jar", null, false, JavaPathType.CLASSES), + new DefaultType(Type.FATJAR, Language.JAVA_FAMILY, "jar", null, true, JavaPathType.CLASSES), // j2ee types new DefaultType("ejb", Language.JAVA_FAMILY, "jar", null, false, JavaPathType.CLASSES), new DefaultType("ejb-client", Language.JAVA_FAMILY, "jar", "client", false, JavaPathType.CLASSES),