如果向其中添加了名称模板,为什么 eclipse 无法识别 Java 多模块 maven 项目的性质?

Why does eclipse not recognize Java nature of a multimodule maven project if name template is added to it?

我有一个以多个模块组织的 springboot 项目。我正在使用 Eclipse 2019-06(版本 4.12)和 jdk 1.8 update 131 和 apache maven 3.3.9 版本。

在使用 Maven -> 现有 Maven 项目 -> select 所有项目和模块级 poms -> 单击完成按钮 导入项目时,它会执行导入成功地。

我可以将子模块视为单独的项目,这些项目可以单独 运行 通过右键单击它们进入项目工作区。 JUnit 测试成功 运行 使用 右键单击​​ -> 运行 As -> JUnit 测试。

但是,如果我在导入项目时包含名称模板,则即使我在导入时 select 所有子模块也无法识别子模块。

Java 文件显示空 J,表明它不识别 Java 性质。因此,我无法 运行 JUnit 测试和 ctrl+click 导航到方法或 class也不行。

在这两种情况下,.project 的内容保持不变:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>my-springboot-app</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.m2e.core.maven2Builder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.eclipse.m2e.core.maven2Nature</nature>
    </natures>
</projectDescription>

我按照其他 Whosebug 线程中的建议尝试了以下步骤:

  1. 手动编辑上面的 xml 以添加 Java 自然标签以及 maven。 这没有帮助,因为它以某种方式开始在 project/package 资源管理器中将相应的子项目显示为包而不是模块。
  2. 将项目转换为分面项目。 这开始显示更多错误,因为 Java 项目的性质仍未被 maven 识别。
  3. 从代码位置使用 mvn eclipse:clean 或 remove.project 文件,然后使用 mvn eclipse:eclipse。这只是重新创建了 .project 文件,对成功导入子项目没有帮助。

请注意,当我没有导入项目并为其指定名称模板时,eclipse 会在导入项目时构建项目。

如果有人能告诉我这是否是 m2e 插件 本身的问题以及我是否应该改用其他插件,那就太好了。

Eclipse 4.12 预装了 m2e。我想到了使用名称模板而不是切换工作区,这可能需要一些时间,以便可以在同一个 eclipse 工作区 中看到我的代码的 2-3 种风格。

问题在于将自定义名称用作名称模板。当我使用 [groupid].[artifactid]-version 或 [artifactid]-version 等任何可用选项时,m2e 成功导入项目。我在早期项目中看到了一些关于导入 class 分辨率的错误,但是当我关闭工作区中不相关的项目时它们就消失了。