eclipse nullpointer exception for modulare maven project upd



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

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

对此有什么解决方案吗?

编辑:这就是堆栈跟踪:

java.lang.NullPointerException at 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.AbstractLifecycle Mapping.configure(AbstractLifecycle Mapping.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( at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54(

您可以注释掉appengine-maven-plugin来解决问题,但这样做会丢失插件的命令行功能。您可以通过使用 Maven 配置文件来两全其美(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 标志激活它。

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

  1. 选择"Windows>首选项">验证
  2. 禁用手动验证和构建验证的 JPA 验证程序

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

从Eclipse Kepler(4.3(更新到Luna(4.4(后,我遇到了同样的问题。从我的pom中注释掉应用程序引擎maven插件.xml为我修复了它。

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

到目前为止,我能够运行和部署我的应用程序,没有任何问题。

似乎是 在"更新Maven项目".java.lang.NullPointerException 期间发生内部错误的副本

转到首选项/服务器/运行时环境

-

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

最新更新