maven 插件插件:descriptor goal fails at the and of file

标签 maven java-8 maven-plugin default-method

在开发 Maven 插件时,构建打印错误:

[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]

即使文件 Iface.java是可编译的。
Iface.java :

package org.example;

public interface Iface {
    default String getString() {
        return "string";
    }
}

来自 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>

是什么导致了问题?如何修复?

最佳答案

问题是 maven-plugin-plugin生成插件描述符很难用默认方法解析 Java 8 接口(interface)。

它可以通过在 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>

或者只是通过将它们的主体移动到实现类来避免默认方法。

相关错误:MPLUGIN-272

关于 maven 插件插件:descriptor goal fails at the and of file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38547239/

相关文章:

java - 无法执行目标 org.apache.maven.plugins :maven-surefire-plugin:2. 4.3:test (default-test) on project smrr: There are test failures

spring-boot - 在企业应用程序中部署 Spring Boot 模块 :TransactionManagementConfigurationSelector is not assignable to interface ImportSelector

java - Maven项目jar库如何获取到另一个项目

java - 如何将 Xtext 生成器包含在我的 Maven 项目中?

java - JDK版本更新,现在找不到 Karate 测试

java - 在 Java 8 forEach 循环中使用 Spring Data JPA 存储库是线程安全的吗?

java - 从 Java 8 中的多级映射构造列表

spring - 运行 JSF 2 webapp 时 Application.getResourceHandler 中的 java.lang.UnsupportedOperationException

java - 将嵌套的 For 循环转换为流

java - 在 Maven 插件中更新一个复杂的对象