maven 编译失败,错误为 -source 1.7 中不支持静态接口方法

问题描述 投票:0回答:3

maven 指向 java 1.8,但 maven 命令抱怨 使用 -source 8 或更高版本启用静态接口方法

$mvn -version

拿起_JAVA_OPTIONS:-Xmx2048m -XX:MaxPermSize = 512m -Djava.awt.headless = true OpenJDK 64 位服务器 VM 警告:忽略选项 MaxPermSize=512m; 8.0 中删除了支持 Apache Maven 3.1.0(893ca28a1da9d5f51ac03827af98bb730128f9f2;2013-06-27 19:15:32-0700) Maven主页:/opt/apache-maven-3.1.0 Java版本:1.8.0_101,供应商:Oracle Corporation Java主目录:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.101-3.b13.el6_8.x86_64/jre 默认区域设置:en_US,平台编码:UTF-8 操作系统名称:“linux”,版本:“2.6.32-573.el6.x86_64”,arch:“amd64”,系列:“unix”

 echo $JAVA_HOME

/usr/lib/jvm/java-1.8.0-openjdk.x86_64 谁能帮忙指出这里出了什么问题吗?

java maven java-8
3个回答
1
投票

如果没有看到实际的 pom,很难判断,但也许你应该配置 Maven 编译器插件以使用 Java 8。

您可以在此处此处查看执行此操作的示例。

最简单的方法可能是:

<project>
 [...]
  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
 [...]
</project>

0
投票

我认为maven项目在较低版本的jdk 8上运行。请检查版本,转到项目属性> Project Facets> java 1.8版本是否选择...如果没有,则选择并应用并再次运行。


0
投票

完成第一个答案

读完后我也遇到了同样的问题 https://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html

在pom.xml中我们需要设置maven-compiler-plugin的源和目标,否则默认值太低

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.12.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
© www.soinside.com 2019 - 2024. All rights reserved.