如何为Maven项目更改JRE系统库?

时间:2017-01-13 14:15:08

标签: java maven

我的项目使用Spring Framework 4.0.0 REALESE,也许它不能在JDK 1.5版上运行,所以我想把它改成SE 1.8。我尝试将我的网站项目的JRE系统库从SE 1.5更新到1.8。但我在从Maven更新项目后发现,我的项目自动返回到旧版本。我该如何解决?

3 个答案:

答案 0 :(得分:4)

我们的项目pom.xml中的以下设置控制用于编译的JDK

<properties>
    . . .
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
    <maven.compiler.bootclasspath>C:\Program Files\Java\jdk1.8.0_101\jre\lib\rt.jar${path.separator}C:\Program Files\Java\jdk1.8.0_101\jre\lib\jsse.jar${path.separator}C:\Program Files\Java\jdk1.8.0_101\jre\lib\jce.jar</maven.compiler.bootclasspath>
    . . .
</properties>

我们的项目是战争神器。部署之后,应用程序服务器的配置(在我们的示例中是tomcat)确定应用程序服务器和应用程序运行的JVM。

(我们的环境有点特殊 - 我们使用JVM / JDK 8但是在Java 1.7兼容模式下使用它们。你不必遵循这个。)

答案 1 :(得分:2)

你的问题不太清楚,所以我一般回答:

首先,您需要决定使用哪个Java来启动Maven。这有一些影响,因为较新的Maven和插件版本需要特定版本。如果你从IDE启动maven,这可能会更复杂,因为用于IDE的JVM用于maven,除非你覆盖它。

如果您不执行任何其他操作,通常此Java VM也用于运行Java编译器。因此,它控制语言级别,输出类版本和使用的系统库。但是有时你想要一个不同的编译器(你应该避免它,但你可以这样做)。在这种情况下,您可以指定编译插件(以及其他一些)使用fork模式,然后指定Java的路径或使用Toolchain(这两者都在SO中描述到任何扩展)< / p>

最后还有编译器的source level and target version settings

这也控制了Eclipse将用于项目的源级别和“系统库”(使用Alt + F5重新读取它)。 Eclipse从maven-compiler-settings中提取这些内容,通常将它们指定为POM属性。

最后不要忘记实际用于启动项目或应用服务器的Java。

答案 2 :(得分:2)

您可以像这样配置编译器插件:

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