Maven + App Engine + Google Eclipse 插件
Posted
技术标签:
【中文标题】Maven + App Engine + Google Eclipse 插件【英文标题】:Maven + App Engine + Google Eclipse Plugin 【发布时间】:2012-04-26 02:59:16 【问题描述】:有没有办法让我拥有一个兼容 Maven 的 Google App Engine (Java) 项目,该项目也与 Eclipse 中的 Google Eclipse 插件兼容?
谢谢!
编辑:
现在对 Maven 插件的原生支持:
https://developers.google.com/appengine/docs/java/tools/maven
【问题讨论】:
【参考方案1】:取决于您所说的“兼容”,它取决于您使用 GAE 插件的哪些功能。我们使用 appengine maven 插件http://code.google.com/p/maven-gae-plugin/ 和 eclipse,它们似乎可以很好地协同工作,但我们没有使用 GWT 或 JDO。与大多数 maven/eclipse 一样,我发现最好从命令行运行你的东西,只使用 eclipse 作为编辑器。
【讨论】:
我希望能够使用 Google Eclipse 插件的所有 GAE 功能,同时能够使用 Maven 的依赖项/测试/部署功能。就像通过 Maven 等链接应用程序引擎 sdk。我想将我的项目集成到 Jenkins 中。谢谢! 另外,我没有使用任何特定的工具框架,例如 GWT/JDO :) 是的,所有这些都有效。但是您可能需要手动编辑您的 GAE 插件设置(在 eclipse 的项目配置中)以使用 ~/.m2/repository/.... 为您的 GAE SDK。查看文档,确保您还将配置设置为指向 /src/webapp 中的战争。 我不断收到此错误:“SDK 位置 '\.m2\repository\com\google\appengine\appengine-api-1.0-sdk\1.7.2\appengine-api-1.0-sdk- 1.7.2.jar' 不是目录”。我已经将 Maven 依赖项推送到类路径的底部而没有结果。有人见过这个吗?谢谢 是目录吗?您是否定义了 settings.xml 文件?如果你这样做,你可能指向错误的位置。该目录应该在您的主目录中(在 unix ~/.m2/repository 上)【参考方案2】:我使用 maven 和 GAE 使用 JDO 一年以来没有任何问题。 这是我在 MacOSX Snow Leopard 上的配置:
Apache Maven 3.0.3 Eclipse 版本:3.7.1 m2e - Eclipse 1.0.100.20110804-1717 的 Maven 集成将 Eclipse 与 Maven 完全集成(从命令行“mvn test”和 Eclipse 中的 JUnit 界面运行所有测试)的重要一点是以这种方式拥有 .project 文件:
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>PROJECT_NAME</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
插件已移至此处: https://github.com/maven-gae-plugin/maven-gae-plugin
【讨论】:
【参考方案3】:+1 对 Rick 的回答,但我想补充一下:
Google 对此有一个教程:http://code.google.com/p/google-web-toolkit/wiki/WorkingWithMaven
也就是说,我们从来没有让它 100% 工作。 maven-gwt-plugin
似乎与 Eclipse 有问题,如果由于 APT 而使用 RequestFactory,情况会变得更糟。 maven-gae-plugin
似乎玩得很好。从 cmdline 运行要容易得多。此外,Eclipse 3.7/m2e 中有一个已知的错误[需要引用],它会阻止很多事情正常工作。
【讨论】:
您的意思是使用 maven-gae-plugin 运行命令行?我想这就是我最终要做的......谢谢! 是的。mvn package gae:deploy
= 胜利。
我不断收到此错误:“SDK 位置 '\.m2\repository\com\google\appengine\appengine-api-1.0-sdk\1.7.2\appengine-api-1.0-sdk- 1.7.2.jar'不是一个目录”是你看到的吗?
已解决,尽管 GAE 容器仍在类路径中,但不知何故 GAE Nature 消失了!!【参考方案4】:
如前所述,google 提供了对 maven 的支持: https://developers.google.com/appengine/docs/java/tools/maven
但看起来它不能完全与 Eclipse 一起工作(如 cmets 之一所述:“SDK location '.m2\repository\com\google\appengine\appengine-api-1.0-sdk\1.7.2\appengine- api-1.0-sdk-1.7.2.jar' 不是目录")
为了解决这个问题,我使用了 maven-eclipse-plugin,并为 GAE/JRE 指定了容器:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.9</version>
<configuration>
<classpathContainers>
<classpathContainer>org.eclipse.jdt.launching.JRE_CONTAINER</classpathContainer>
<classpathContainer>com.google.appengine.eclipse.core.GAE_CONTAINER</classpathContainer>
</classpathContainers>
</configuration>
</plugin>
【讨论】:
【参考方案5】:我对 GAE + Maven + Eclipse 的一般发现。
规则 1: 使用 GAE 原型生成您的 GAE 项目:https://developers.google.com/appengine/docs/java/tools/maven
规则 2: 如果你想用 Eclipse 开发 - 不要执行“mvn eclipse:eclipse”然后导入 - 这会导致很多问题。而是导入为“Maven 项目”
第 3 条规则: YouTube 上描述的如何创建 MVN/GAE/Eclipse 项目的简单/有效解决方案http://www.youtube.com/watch?v=oC6bJp5X3LI
PS。我正在使用单独的 Web/DAO/Domain 模块进行项目 - 我稍后会发布我的发现和线索。
【讨论】:
以上是关于Maven + App Engine + Google Eclipse 插件的主要内容,如果未能解决你的问题,请参考以下文章
App Engine 的 Maven Central Google 镜像 settings.xml
带有 maven 开发服务器的 Google App Engine Java 失败:缺少“guestbook/target/guestbook-1.0-SNAPSHOT”
如何在使用 GAE Maven 插件时在 IDEA 中调试 Java Google App Engine 应用程序?