如何将jdk 9 maven spring boot 2项目导入eclipse ee oxygen而不使用Dynamic Web Module 3.0 facet hacks?

时间:2018-05-17 19:57:19

标签: spring eclipse maven spring-boot

我想将现有的jdk9(或10个)maven项目导入eclipse ee Oxygen。

即使在pom中以各种方式指定1.9,也会显示有关日食问题的标记:

  • 构建路径指定执行环境J2SE-1.5。工作区中没有安装与此环境严格兼容的JRE。

  • 动态Web模块3.1需要Java 1.7或更高版本。

我试过制作我的pom构建插件包括:

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

或顶部的这些属性:

<maven.compiler.target>1.9</maven.compiler.target>
<maven.compiler.source>1.9</maven.compiler.source> 

我可以摆脱&#34;没有JRE ......&#34;通过确保如下设置来消除问题标记:

  • Windows - 首选项 - Java - jdk 1.9
  • 项目 - 属性 - 构建路径 - jdk 1.9
  • 项目 - 属性 - Java编译器 - 1.9合规性

不应该不需要这些项目设置,因为我的pom指定1.9? - Isn&lt; tt eclipse应该将设置导入为1.9?

我无法删除此问题标记:&#34;动态网络模块3.1需要Java 1.7或更高版本。&#34;

我尝试过的事情是:

  • 设置不同的组合:项目方面&#34;动态网络模块&#34;到3.1或3.0 - 以及将Java facet设置为9。
  • 将这两个方面设置为未选中
  • 编辑eclipse生成的.settings~facets.xml文件,设置&#34;动态Web模块&#34;到3.0 / 3.1 /或从文件中删除行

  • 指定较旧的javax.servlet-api依赖

      的javax.servlet   的javax.servlet-API   3.1.0   提供

我正在使用注释配置Spring - 我没有Web.xml。我的pom包装是WAR。

我的JAVA_HOME环境变量设置为jdk 9 - 在Windows 7上。我在PATH变量中有%JAVA_HOME%\ bin。

我没有在任何地方安装旧的​​jdk。我安装了jdk10,但只安装了一个jdk时仍然会发生这些错误。

当我使用带有jdk 8的Eclipse Neon时,我曾经能够将maven项目导入eclipse而没有任何问题。

我将我的poms更新为jdk 9,所以我可以转到Spring Boot 2.0.2.RELEASE

在所有新版本的测试运行之间 - 我执行这些缓存清理尝试:

  • 删除eclipse提取的zip
  • 删除[userhome] / .eclipse
  • 删除[source-project] /。设置
  • 从ide
  • 删除项目
  • 重新提取Eclipse,设置Windows首选项jdk9(如果还没有)重新导入pom

我尝试使用Spring Tool Suite变体 - 但体验相同&#34; Dynamic Web Module 3.1需要Java 1.7或更新版本。&#34;错误

我查看了其他帖子 - 通常比现在大1岁。他们通常会在我上面尝试过的所有事情 - 但我的动态Web模块3.1需要Java 1.7或更新版本。&#34;错误并没有像其他人一样消失。

这是一个已知问题,对最新版本的任何人都没有用 - 或者它是否可以使用?

我注意到并且看到其他人评论说通过eclipse运行maven构建导致之前的eclipse jdk版本设置&#34;走开, 就像它试图用m2eclipse再次从pom重新导入设置 - 但是给出了不导入1.9设置的不良效果 pom - 所以我必须在Eclipse设置中再次设置它。 Eclipse Neon和jdk8

并没有发生这种情况

以下是我尝试过的一些事情:

Changing Dynamic Web Module version in Eclipse Maven Project

https://crunchify.com/how-to-fix-cannot-change-version-of-project-facet-dynamic-web-module-to-3-0-error-in-eclipse/

1 个答案:

答案 0 :(得分:0)

解决方案是使用“9”代替“1.9”,因此pom中的部分显示为:

USE dbname;
ALTER TABLE table1 CHANGE phonenumber phonenumber varchar(255);

or 

USE dbname;
ALTER TABLE table1 MODIFY phonenumber1 varchar(25);

这允许m2 eclipse插件使用其预期的java版本号表示来导入项目。