2

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

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

有什么解决办法吗?

编辑:那是堆栈跟踪:

java.lang.NullPointerException at com.google.appengine.eclipse.wtp.maven.GaeRuntimeManager.getGaeRuntime(GaeRuntimeManager.java:85) at 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) at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager$3.call(ProjectConfigurationManager.java:477) at org.eclipse.m2e org.eclipse.m2e.core 上的 .core.internal.project.ProjectConfigurationManager$3.call(ProjectConfigurationManager.java:1)。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) at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.configureNewMavenProjects(ProjectConfigurationManager.java:250) at 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。在 org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) 运行(InternalWorkspaceJob.java:38)

4

4 回答 4

3

您可以注释掉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在配置文件中定义 only 时,Eclipse 不会使用它,并且 bug 消失了。使用命令行时,请记住使用-P标志激活它。

于 2015-05-21T02:32:51.850 回答
1

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

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

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

于 2015-05-15T09:05:29.420 回答
0

从 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>
-->

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

于 2014-12-19T12:22:22.363 回答
0

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

得到偏好/服务器/运行时环境

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

于 2015-09-08T16:16:48.333 回答