pom plugin mvn jdk compiler artifactid maven java-8 maven-plugin default-method

mvn - maven-plugin-plugin: el objetivo del descriptor falla en el archivo y



maven-war-plugin java 8 (1)

Al desarrollar un complemento de Maven, el error de compilación se imprime:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-plugin-plugin:3.3:descriptor (default-descriptor) on project default-method-demo: Execution default-descriptor of goal org.apache.maven.plugins:maven-plugin-plugin:3.3:descriptor failed: syntax error @[8,1] in file:/full/path/to/project/default-method/src/main/java/org/example/Iface.java -> [Help 1]

a pesar de que el archivo Iface.java es compilable.

Iface.java :

package org.example; public interface Iface { default String getString() { return "string"; } }

de pom.xml

<packaging>maven-plugin</packaging> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-plugin-api</artifactId> <version>3.0.5</version> </dependency> <dependency> <groupId>org.apache.maven.plugin-tools</groupId> <artifactId>maven-plugin-annotations</artifactId> <version>3.4</version> <scope>provided</scope> </dependency> </dependencies>

¿Qué causa el problema? ¿Cómo se puede arreglar?


El problema es que el descriptor del maven-plugin-plugin generación de complemento de complemento de Maven tuvo dificultades para analizar las interfaces de Java 8 con los métodos predeterminados.

Se puede arreglar indicando explícitamente la versión más nueva del complemento en pom.xml :

<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-plugin-plugin</artifactId> <version>3.4</version> </plugin> <!-- other plugins --> </plugins> </build>

O simplemente evitando los métodos predeterminados moviendo sus cuerpos a clases de implementación.

MPLUGIN-272 relacionado: MPLUGIN-272