【问题标题】:Why is Eclipse hitting an NPE updating my Maven project?为什么 Eclipse 遇到 NPE 更新我的 Maven 项目?
【发布时间】:2021-02-03 16:52:33
【问题描述】:

我正在尝试将 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]  

【问题讨论】:

  • 也许可以尝试将 eclipse 配置为使用您机器上的 maven 而不是嵌入式机器。在这里查看:stackoverflow.com/a/25468277/460557
  • 请显示以!SESSION开头的整个日志并告知m2e的版本(确保带有m2e的Eclipse是最新的)。
  • @JorgeCampos 这在这里不起作用。
  • @howlger 我已经上传了一个以 !SESSION 开头的日志,涵盖昨天和今天在这里 gist.github.com/OneGeek/d4aa047ca03820d946c86d87f0c2b61e Eclipse 安装详细信息中的 m2e 版本信息是:m2e - Eclipse 的 Maven 集成(包括孵化组件)1.16 .1.20200710-1008 org.eclipse.m2e.feature.feature.group Eclipse.org - m2e
  • 如果您可以使用当前的 Eclipse 复制它而无需额外的插件,请创建一个 minimal example。否则,找出它是由哪个附加插件引起的。

标签: eclipse maven m2eclipse


【解决方案1】:

我最终抓取了 m2e 的源代码并调试了我的 Eclipse 实例,在AbstractJavaProjectConfigurator.getProjectRelativePath() 上设置了一个断点来直接检查 NPE 的源代码。

最终原因是<resource>...</resource> 元素中缺少<directory>...</directory> 元素。我之前没有找到它,因为 m2e/Eclipse 没有为错误提供任何上下文。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2013-12-31
  • 1970-01-01
  • 2020-08-24
  • 1970-01-01
  • 2017-07-22
  • 2021-01-17
  • 1970-01-01
  • 2023-04-07
相关资源
最近更新 更多