Maven编译(java8兼容java6)

时间:2018-03-21 15:47:46

标签: java eclipse maven java-8 java-6

我的maven构建存在问题,因为最近我们更改了java。

我使用java8启动maven构建,我希望我的代码可以用java6编译。所以为此我把它添加到我的pom中:

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
            <source>1.6</source>
            <target>1.6</target>
            <optimize>true</optimize>
            <compilerVersion>1.6</compilerVersion>   
            <compilerId>eclipse</compilerId>
            <executable>${JAVA_1_6_HOME}/bin/javac</executable>
            <verbose>true</verbose>
            <fork>true</fork>
            <debug>true</debug>
        </configuration>
        <dependencies>
            <dependency>
                <groupId>org.codehaus.plexus</groupId>
                <artifactId>plexus-compiler-eclipse</artifactId>
                <version>2.1</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.plexus</groupId>
                <artifactId>plexus-compiler-api</artifactId>
                <version>2.1</version>
            </dependency>
        </dependencies>
    </plugin>

但是当我启动maven构建时,我遇到了这个只存在于java8中的错误(带有参数()和()的名为spliterator的重复方法继承自List<T>Collection<T>类型。< / p>

你知道为什么我的代码似乎是用java8编译的吗?

(部分日志)

(f) compilerId = eclipse
[DEBUG]   (f) compilerVersion = 1.6
[DEBUG]   (f) debug = true
[DEBUG]   (f) encoding = UTF-8
[DEBUG]   (f) executable = C:\Program Files\Java60\java\bin\javac
[DEBUG]   (f) failOnError = true
[DEBUG]   (f) forceJavacCompilerUse = false
[DEBUG]   (f) fork = true

1 个答案:

答案 0 :(得分:0)

我认为你应该使用java 8中的编译器。现在你硬编码${JAVA_1_6_HOME}/bin/javac。使用类似:${JAVA_1_8_HOME}/bin/javac

的内容