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