Spring boot 错误源选项1.5不再受支持。使用1.6或更高版本 这一切都发生在我试图通过/mvnw clean install构建springboot应用程序时

Spring boot 错误源选项1.5不再受支持。使用1.6或更高版本 这一切都发生在我试图通过/mvnw clean install构建springboot应用程序时,spring-boot,maven,intellij-idea,jetbrains-ide,unsupported-class-version,Spring Boot,Maven,Intellij Idea,Jetbrains Ide,Unsupported Class Version,当我第一次运行install命令时,它遇到了以下问题 [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2.749s [INFO] Finished

当我第一次运行install命令时,它遇到了以下问题

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.749s
[INFO] Finished at: Fri Jun 21 02:14:32 IST 2013
[INFO] Final Memory: 4M/15M
[INFO] ------------------------------------------------------------------------
**[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project spring-social-twitter4j: Execution default-compile of goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile failed: A required class was missing while executing org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile: org/codehaus/plexus/compiler/CompilerException**
[ERROR] -----------------------------------------------------
[ERROR] realm =    plugin>org.apache.maven.plugins:maven-compiler-plugin:2.3.2
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/C:/Users/SS%20Computer/.m2/repository/org/apache/maven/plugins/maven-compiler-plugin/2.3.2/maven-compiler-plugin-2.3.2.jar
[ERROR] urls[1] = file:/C:/Users/SS%20Computer/.m2/repository/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import  from realm ClassRealm[maven.api, parent: null]]
[ERROR] 
[ERROR] -----------------------------------------------------: org.codehaus.plexus.compiler.CompilerException
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginContainerException
我在Stackoverflow上搜索了这个问题,并通过邮件解决了这个问题

然后,我遇到了另一个问题

[ERROR] Source option 1.5 is no longer supported. Use 1.6 or later.
[ERROR] Target option 1.5 is no longer supported. Use 1.6 or later.
我在OS X上。
mvn-v
显示:

Maven home: /Users/matthuntington/Desktop/apache-maven-3.5.0
Java version: 9, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.12.6", arch: "x86_64", family: "mac"
这是我的pom文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.packtpub.restapp</groupId>
    <artifactId>ticket-management</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>ticket-management</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>


    <dependencies>
            <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>5.0.1.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <version>1.5.7.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <version>1.5.7.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>5.0.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.0.1.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <version>1.5.7.RELEASE</version>                
        </dependency>   
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

4.0.0
com.packtpub.restapp
票务管理
0.0.1-快照
罐子
票务管理
SpringBoot的演示项目
UTF-8
UTF-8
org.springframework
弹簧网
5.0.1.发布
org.springframework.boot
弹簧靴起动器
1.5.7.1发布
org.springframework.boot
弹簧启动机tomcat
1.5.7.1发布
com.fasterxml.jackson.core
杰克逊数据绑定
2.9.2
org.springframework
弹簧网
5.0.0.0发布
org.springframework
SpringWebMVC
5.0.1.发布
org.springframework.boot
弹簧起动试验
测试
1.5.7.1发布
org.springframework.boot
springbootmaven插件

通过将这些属性添加到pom.xml文件中,可以指定maven源/目标版本

<properties>
    <maven.compiler.source>1.6</maven.compiler.source>
    <maven.compiler.target>1.6</maven.compiler.target>
</properties>

1.6
1.6

我想这意味着

  • 您正在使用JDK9或更高版本
  • 您的项目使用maven编译器插件,其旧版本默认为Java5
你有三个选择来解决这个问题

  • 降级至JDK7JDK8(meh)
  • 使用maven编译器插件版本或更高版本,因为

    注意:自3.8.0以来,默认值已从1.5更改为1.6 看

    
    org.apache.maven.plugins
    

    还要注意,目前默认的源设置是1.6,默认的目标设置是1.6,与运行Maven的JDK无关。 强烈建议您通过设置源和目标来更改这些默认值,如中所述

    
    org.apache.maven.plugins
    maven编译器插件
    1.6
    1.6
    
    或使用

    <properties>
      <maven.compiler.source>1.6</maven.compiler.source>
      <maven.compiler.target>1.6</maven.compiler.target>
    </properties>
    
    
    1.6
    1.6
    

  • 可能存在损坏的jar文件,该文件可能会将错误显示为“ZipFile无效LOC头(错误签名)” 您需要删除显示错误的所有jar文件,并添加此依赖项

     <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>3.0-alpha-1</version>
        <scope>provided</scope>
    </dependency>
    
    
    javax.servlet
    servlet api
    3.0-α-1
    假如
    
    此错误可能也适用于插件版本。您可以在.POM文件中修复它,如下所示:

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.1</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
    
    
    org.apache.maven.plugins
    maven编译器插件
    2.3.1
    1.6
    1.6
    
    您需要将JDK1.5设置到您的项目中,并且所有依赖的项目或jar文件也应该使用JDK1.5进行编译

    对于我来说,解决方案是将maven编译器插件的版本设置为3.8.0,并指定发布版本(在您的情况下为9,在我的情况下为11)

    
    maven编译器插件
    3.8.0
    11
    
    这对我很有效

    <?xml version="1.0" encoding="UTF-8"?>
    
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>academy.learnprogramming</groupId>
        <artifactId>hello-maven</artifactId>
        <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>
    
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <configuration>
                    <target>10</target>
                    <source>10</source>
                    <release>10</release>
                </configuration>
    
            </plugin>
        </plugins>
    </build>
    </project>
    
    
    4.0.0
    academy.learnprogramming
    你好maven
    1.0-快照
    回写
    回归经典
    1.2.3
    org.apache.maven.plugins
    maven编译器插件
    3.7.0
    10
    10
    10
    
    在IntelliJ中:
  • 打开
    项目结构
    ⌘;)>
    模块
    您的模块
    ->语言 级别:根据您的情况设置9
  • 对每个模块重复上述步骤

  • 确保您的
    pom.xml
    文件中有以下配置

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
    
    
    1.8
    1.8
    
    我收到错误:“源选项5不再受支持。请使用6或更高版本” 在我更改pom.xml之后

    <java.version>7</java.version>
    
    7
    

    11
    
    后来才意识到该房产是用破折号代替圆点使用的:

      <source>${java-version}</source>
      <target>${java-version}</target>
    
    ${java版本}
    ${java版本}
    
    (咒骂),我用破折号替换了圆点,错误消失了:

    <java-version>11</javaversion>
    
    11
    
    您在java9上使用的Spring Boot 1.5基本上是不受支持的组合。您还试图将Spring Boot 1.5与Spring 5配合使用,而它是为与Spring 4.3配合使用而设计的。@M.Deinum。是的,你是对的。在我的例子中,它不是spring boot,pom.xml中没有1.5规范,可能1.5是默认的。当我还是一个孩子的时候,我加了一句,这句话很管用。
    <java.version>7</java.version>
    
    <java.version>11</java.version>
    
      <source>${java-version}</source>
      <target>${java-version}</target>
    
    <java-version>11</javaversion>