代码之家  ›  专栏  ›  技术社区  ›  user8389458

不再支持错误源选项1.5。使用1.6或更高版本

  •  91
  • user8389458  · 技术社区  · 7 年前

    这一切都发生在我试图通过以下方式构建springboot应用程序时 ./mvnw clean install

    当我第一次运行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上搜索了这个问题,并通过post解决了这个问题

    Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile)

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

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

    我在苹果操作系统上。 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>
    
    10 回复  |  直到 5 年前
        1
  •  175
  •   2 revs<br/>user8389458&#13;    7 年前

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

    <properties>
        <maven.compiler.source>1.6</maven.compiler.source>
        <maven.compiler.target>1.6</maven.compiler.target>
    </properties>
    
        2
  •  67
  •   rds    6 年前

    我想这意味着

    • 您正在使用JDK9或更高版本
    • 您的项目使用 maven编译器插件 使用默认为Java 5的旧版本。

    您有三种选择来解决此问题

    1. 降级到 JDK7 JDK8 (百万欧元)
    2. 使用 maven编译器插件 版本或更高版本,因为

      注: 自3.8.0以来,默认值已从1.5更改为1.6 看见 https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#target

      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
      </plugin>
      
    3. 指示给 maven编译器插件 使用源级别6和目标级别6(或更高版本)。

      最佳实践 推荐人 https://maven.apache.org/plugins/maven-compiler-plugin/

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

      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <configuration>
              <source>1.6</source>
              <target>1.6</target>
          </configuration>
      </plugin>
      

      或使用

      <properties>
        <maven.compiler.source>1.6</maven.compiler.source>
        <maven.compiler.target>1.6</maven.compiler.target>
      </properties>
      
        3
  •  16
  •   MeirDayan    6 年前

    此错误可能也适用于插件版本。您可以在 .聚甲醛 文件如下:

    <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>
    
        4
  •  5
  •   Ravikumar Kumarasamy    5 年前

    确保您的 pom.xml 文件

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
    
        5
  •  3
  •   KC Baltz    5 年前

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

        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
          <configuration>
            <release>11</release>
          </configuration>
        </plugin>
    
        6
  •  3
  •   MOHAMMAD SIKANDAR    5 年前

    这对我有用!!!!

    <?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>
    
        7
  •  3
  •   epox    5 年前

    在IntelliJ中:

    1. 打开 Project Structure ( ⌘; )> Modules &燃气轮机; YOUR MODULE -&燃气轮机; 语言 级别: 在你的情况下,设置9。
    2. 对每个模块重复此步骤。

    screenshot

        8
  •  1
  •   Rohan Pandey    6 年前

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

     <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>3.0-alpha-1</version>
        <scope>provided</scope>
    </dependency>
    
        9
  •  0
  •   gharel    4 年前

    我遇到此错误:“不再支持源选项5。请使用6或更高版本” 在我换了pom之后。xml

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

    <java.version>11</java.version>
    

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

      <source>${java-version}</source>
      <target>${java-version}</target>
    

    (咒骂),我用破折号替换了点,错误消失了:

    <java-version>11</javaversion>
    
        10
  •  -1
  •   Pankaj Kumar    6 年前

    您需要将JDK 1.5设置为您的项目,并且所有依赖的项目或jar文件也应该使用JDK 1.5编译

    推荐文章