eclipse - 为什么 Eclipse 会遇到 NPE 更新我的 Maven 项目?

原文 标签 eclipse maven m2eclipse

我正在尝试将 maven 项目拆分为子模块。它在命令行上构建良好,但是当导入 eclipse 时,我会在一段时间后收到以下错误,然后我被迫重新导入项目。
项目结构为

  • 我的应用
  • 我的旧版应用程序
  • 我的应用程序共享


  • 在更新 maven 项目时确定路径时,eclipse 似乎遇到了 NPE。我该从哪里解决这个问题?
    2020-10-20 15:23:12,368 [Worker-13: Updating maven profiles] WARN  o.e.m.c.p.c.AbstractLifecycleMapping - Could not update project my-legacy-app configuration
    java.lang.NullPointerException: null
        at org.eclipse.m2e.jdt.internal.AbstractJavaProjectConfigurator.getProjectRelativePath(AbstractJavaProjectConfigurator.java:788) ~[na:na]
        at org.eclipse.m2e.jdt.internal.AbstractJavaProjectConfigurator.getOtherResourceFolders(AbstractJavaProjectConfigurator.java:535) ~[na:na]
        at org.eclipse.m2e.jdt.internal.AbstractJavaProjectConfigurator.overlapsWithOtherResourceFolder(AbstractJavaProjectConfigurator.java:520) ~[na:na]
        at org.eclipse.m2e.jdt.internal.AbstractJavaProjectConfigurator.addResourceDirs(AbstractJavaProjectConfigurator.java:475) ~[na:na]
        at org.eclipse.m2e.jdt.internal.AbstractJavaProjectConfigurator.addProjectSourceFolders(AbstractJavaProjectConfigurator.java:341) ~[na:na]
        at org.eclipse.m2e.jdt.internal.AbstractJavaProjectConfigurator.configure(AbstractJavaProjectConfigurator.java:156) ~[na:na]
        at org.eclipse.m2e.core.project.configurator.AbstractLifecycleMapping.configure(AbstractLifecycleMapping.java:122) ~[na:na]
        at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.lambda$2(ProjectConfigurationManager.java:511) ~[na:na]
        at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:179) ~[na:na]
        at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:153) ~[na:na]
        at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.updateProjectConfiguration(ProjectConfigurationManager.java:505) ~[na:na]
        at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.updateProjectConfiguration0(ProjectConfigurationManager.java:443) ~[na:na]
        at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.lambda$1(ProjectConfigurationManager.java:358) ~[na:na]
        at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:179) ~[na:na]
        at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:153) ~[na:na]
        at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:101) ~[na:na]
        at org.eclipse.m2e.core.internal.embedder.MavenImpl.execute(MavenImpl.java:1370) ~[na:na]
        at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.updateProjectConfiguration(ProjectConfigurationManager.java:357) ~[na:na]
        at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.updateProjectConfiguration(ProjectConfigurationManager.java:343) ~[na:na]
        at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.updateProjectConfiguration(ProjectConfigurationManager.java:325) ~[na:na]
        at org.eclipse.m2e.profiles.core.internal.management.ProfileManager.updateActiveProfiles(ProfileManager.java:86) ~[na:na]
        at org.eclipse.m2e.profiles.ui.internal.actions.ProfileSelectionHandler$UpdateProfilesJob.runInWorkspace(ProfileSelectionHandler.java:320) ~[na:na]
        at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:42) ~[na:na]  
    

    最佳答案

    我最终获取了 m2e 的源代码并调试了我的 Eclipse 实例,在 AbstractJavaProjectConfigurator.getProjectRelativePath() 上设置了一个断点。直接检查NPE的来源。
    原因最终是丢失 <directory>...</directory> <resource>...</resource> 中的元素元素。我之前没有找到它,因为 m2e/Eclipse 没有为该错误提供任何上下文。

    关于eclipse - 为什么 Eclipse 会遇到 NPE 更新我的 Maven 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64452303/

    相关文章:

    java - Maven 读取 .properties 以在 pom.xml 中使用

    maven - eclipse导入的maven项目无法解析其他导入maven项目中的符号

    eclipse indigo市场Maven集成安装错误

    eclipse - 如何在Snow Leopard上(重新)附加Eclipse的JDK源代码?

    eclipse - 为什么 "activator eclipse"在新项目中产生 "Not a valid project ID: eclipse"?

    java - 当前有哪些 Java 代码覆盖率工具可以从测试的角度显示覆盖率?

    bundle - 如何让M2E eclipse插件理解Bundle打包

    mysql - 如何为笔记本电脑上当前的 eclipse war 文件和初始 MySQL 服务器数据设置在线托管?

    eclipse - 如何使Maven在我的Eclipse引用库中包含一个jar?

    java - 什么引用了 Maven 插件执行的 <id> 值?