Eclipse + Maven:强制执行环境"JavaSE-1.6"而不是固定JDK

sjn*_*ngm 8 java eclipse maven-2 maven

我正在使用Eclipse作为IDE和Maven,以使所有依赖项保持最新并更新Eclipse项目.在Eclipse中,我通常将JRE系统库指定为任何Java项目的执行环境,通常是"JavaSE-1.6".

在pom.xml中我使用以下行:

        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-eclipse-plugin</artifactId>
            <version>2.8</version>
            <configuration>
                <projectNameTemplate>[groupId].[artifactId]</projectNameTemplate>
                <downloadJavadocs>true</downloadJavadocs>
                <wtpversion>2.0</wtpversion>
            </configuration>
        </plugin>
Run Code Online (Sandbox Code Playgroud)

这似乎让Maven选择了一个匹配1.6的JDK.它将其系统库分配给项目的类路径.但是,它直接使用jdk1.6.20而不是JavaSE-1.6.

有没有办法让Maven使用JavaSE-1.6?


编辑:这是我用来运行Maven的批处理文件:

SET JAVA_HOME=C:\Programme\java\jdk1.6.0_20
SET MAVEN_HOME=C:\Programme\apache-maven-2.2.1
SET MAVEN_OPTS=-Xmx512m -XX:MaxPermSize=128m
SET PATH=%JAVA_HOME%\bin;%MAVEN_HOME%\bin;%PATH%

SET EXTRA_MVN_OPTS=-Dmaven.test.skip=true

CD /D "%~dp0"
cmd /c mvn %EXTRA_MVN_OPTS% eclipse:clean eclipse:eclipse
cmd /c mvn %EXTRA_MVN_OPTS% clean install
Run Code Online (Sandbox Code Playgroud)

Sea*_*oyd 10

您可以通过设置类路径容器来完成此操作.

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-eclipse-plugin</artifactId>
    <version>2.8</version>
    <configuration>
        <classpathContainers>
           <classpathContainer>
    org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6
           </classpathContainer>
        </classpathContainers>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

参考: