Discuss / Java / 使用eclipse建maven项目的一定需要注意library绑定的jdk或者jre版本,这个版本不会自动绑定到你的工作环境版本

使用eclipse建maven项目的一定需要注意library绑定的jdk或者jre版本,这个版本不会自动绑定到你的工作环境版本

Topic source

a_bumpy_night

#1 Created at ... [Delete] [Delete and Lock User]

导入的maven项目一般是没有问题的,因为它们都会标注使用的jre版本,比如格式可以是:

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

<maven.compiler.source>14</maven.compiler.source>

<maven.compiler.target>14</maven.compiler.target>

<java.version>14</java.version>

</properties>

这里面的jave version 14就告诉eclipse编译的时候要把项目buildpath中的libraries指向对应的java 14版本。查看eclipse给你运行时实际使用的是哪个jre,可以右键项目-properties-左侧Java Build Path-右侧Libraries。比如我这里的14就对应JavaSE-14

但是如果在eclipse里新建项目,如果没有选择archetype或者选择的archetype没有<java.version>这一项,那么默认生成的版本就是1.5,也就是Java 5。这是因为eclipse里面管理maven的插件m2e的规则是,如果pom.xml文件里如果没有jave version这一项,那么m2e就会给你设置成默认值1.5 。**即使你生成pom.xml文件后又修改此文件,这个绑定的jre也不会变的,它还会是原来那个,eclipse是不会给你自动更新的。**至于你用这个古早的Jave5版本能不能跑通,那就只有天知道了(反正我是没跑通过)。

所以要是用eclipse建maven项目的话,可以用它的模板建,然后修改好pom文件,然后在eclipse目录树里删掉这个项目,再重新导入这个项目。如果eclipse第一次看到pom文件时java版本是对的,就会链接到正确的jre版本,后面作为一个项目运行也不会有问题。重新导入后,可以去项目属性,build path里查看一下。

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]

你只需要用Maven - Update Project他就会自动刷新到pom指定的jdk并更新classpath

a_bumpy_night

#3 Created at ... [Delete] [Delete and Lock User]

多谢老师,原来如此


  • 1

Reply