【问题标题】:eclipse nullpointer exception for modulare maven project update模块化maven项目更新的eclipse nullpointer异常
【发布时间】:2015-02-06 11:34:51
【问题描述】:

我正在使用带有 m2e 插件和最新 gae 依赖项的 Eclipse 4.4.1。当我导入 gae module sample project 时,eclipse 告诉我项目配置不是最新的。如果我运行建议的 maven -> 更新项目,我会得到一个 NPE。

NPE 有很多关于项目更新的错误报告。到目前为止,我已经在新的或现有的工作区中尝试使用 mvn eclipse:eclipse 或 maven 项目导入,但我从未能够让项目在 eclipse 中运行。

有解决办法吗?

编辑: 那是堆栈跟踪:

java.lang.NullPointerException 在 com.google.appengine.eclipse.wtp.maven.GaeRuntimeManager.getGaeRuntime(GaeRuntimeManager.java:85) 在 com.google.appengine.eclipse.wtp.maven.GaeRuntimeManager.ensureGaeRuntimeWithSdk(GaeRuntimeManager.java:55) 在 com.google.appengine.eclipse.wtp.maven.GaeFacetManager.addGaeFacet(GaeFacetManager.java:59) 在 com.google.appengine.eclipse.wtp.maven.GaeProjectConfigurator.configure(GaeProjectConfigurator.java:46) 在 org.eclipse.m2e.core.project.configurator.AbstractLifecycleMapping.configure(AbstractLifecycleMapping.java:120) 在 org.eclipse.m2e.core.internal.project.ProjectConfigurationManager$3.call(ProjectConfigurationManager.java:477) 在 org.eclipse.m2e.core.internal.project.ProjectConfigurationManager$3.call(ProjectConfigurationManager.java:1) 在 org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:166) 在 org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:142) 在 org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.updateProjectConfiguration(ProjectConfigurationManager.java:470) 在 org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.configureNewMavenProjects(ProjectConfigurationManager.java:250) 在 org.eclipse.m2e.core.internal.project.ProjectConfigurationManager$1.call(ProjectConfigurationManager.java:163) 在 org.eclipse.m2e.core.internal.project.ProjectConfigurationManager$1.call(ProjectConfigurationManager.java:1) 在 org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:166) 在 org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:142) 在 org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:96) 在 org.eclipse.m2e.core.internal.embedder.MavenImpl.execute(MavenImpl.java:1348) 在 org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.importProjects(ProjectConfigurationManager.java:133) 在 org.eclipse.m2e.core.ui.internal.wizards.ImportMavenProjectsJob$1.doCreateMavenProjects(ImportMavenProjectsJob.java:73) 在 org.eclipse.m2e.core.ui.internal.wizards.AbstractCreateMavenProjectsOperation.run(AbstractCreateMavenProjectsOperation.java:62) 在 org.eclipse.m2e.core.ui.internal.wizards.ImportMavenProjectsJob.runInWorkspace(ImportMavenProjectsJob.java:82) 在 org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38) 在 org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

【问题讨论】:

    标签: eclipse google-app-engine maven google-plugin-eclipse maven-module


    【解决方案1】:

    从 Eclipse Kepler (4.3) 更新到 Luna (4.4) 后,我遇到了同样的问题。从我的 pom.xml 中注释掉 app-engine-maven 插件为我修复了它。

    <!--
    <plugin>
        <groupId>com.google.appengine</groupId>
        <artifactId>appengine-maven-plugin</artifactId>
        <version>${appengine.target.version}</version>
    </plugin>
    -->
    

    到目前为止,我能够毫无问题地运行和部署我的应用程序。

    【讨论】:

    • 好吧,反正我不使用 maven 开发服务器,但是部署呢?你是否使用 eclipse gae 插件来完成这些任务?
    • 是的,我正在使用 Google App Engine Tools for Maven 插件 (dl.google.com/eclipse/plugin/4.4)。
    • 好的,我可以确认,但是,一个固定的 pom/maven 插件会很好!
    • @nothingtodohere 你也可以使用Maven profiles,看我的回答。
    【解决方案2】:

    我的一个项目中突然出现了同样的问题。暂时禁用 JPA 验证器似乎已经解决了这个问题。

    1. 选择 Windows > 首选项 > 验证
    2. 为手动验证和构建验证禁用 JPA 验证器

    这可能与此处描述的“持久性.xml 文件没有可识别的内容”错误有关:www-01.ibm.com/support/docview.wss?uid=swg21616684。

    【讨论】:

      【解决方案3】:

      您可以注释掉appengine-maven-plugin 来解决问题,但这样做会失去插件的命令行功能。使用Maven profiles,您可以两全其美(Eclipse 和 Maven 命令行):

      <profiles>
          <profile>
              <id>gae</id>
              <build>
                  <plugin>
                      <groupId>com.google.appengine</groupId>
                      <artifactId>appengine-maven-plugin</artifactId>
                      <version>${appengine.target.version}</version>
                  </plugin>
              </build>
          </profile>
      </profiles>
      

      要激活它,例如,从命令行部署项目,您可以这样做:

      mvn appengine:update -P gae
      

      当仅在配置文件中定义appengine-maven-plugin 时,Eclipse 不会使用它,并且该错误消失了。使用命令行时,请记住使用-P 标志激活它。

      【讨论】:

        【解决方案4】:

        似乎与An internal error occurred during: "Updating Maven Project". java.lang.NullPointerException重复

        进入偏好/服务器/运行时环境

        --> 选择“Google App Engine”并将有效的 SDK 关联到此运行时。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-05-16
          • 1970-01-01
          • 2019-11-07
          • 2011-05-02
          • 2011-02-22
          • 2018-02-11
          • 2011-03-02
          相关资源
          最近更新 更多