【问题标题】:Maven + App Engine + Google Eclipse PluginMaven + App Engine + Google Eclipse 插件
【发布时间】:2012-04-26 02:59:16
【问题描述】:

有没有办法让我拥有一个兼容 Maven 的 Google App Engine (Java) 项目,该项目也与 Eclipse 中的 Google Eclipse 插件兼容?

谢谢!

编辑:

现在对 Maven 插件的原生支持:

https://developers.google.com/appengine/docs/java/tools/maven

【问题讨论】:

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


    【解决方案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 模块进行项目 - 我稍后会发布我的发现和线索。

        【讨论】:

          猜你喜欢
          • 2012-12-11
          • 2012-08-17
          • 1970-01-01
          • 2013-03-05
          • 2013-10-22
          • 1970-01-01
          • 1970-01-01
          • 2013-03-26
          • 2017-09-30
          相关资源
          最近更新 更多