【问题标题】:Google App Engine, Maven and Eclipse development setupGoogle App Engine、Maven 和 Eclipse 开发设置
【发布时间】:2013-10-22 00:35:06
【问题描述】:

我会尽量保持简短。我有 Eclipse 并安装了 M2E (Maven to Eclipse) 插件。我正在处理一个 GAE (Google App Engine) 项目。除了一件非常烦人的事情之外,一切都运行良好:每次进行更改时,我都必须停止/启动开发服务器。

如果您对此设置有任何经验,那么您或许能够回答这个简单的问题?

我在命令行上使用“mvn appegnine:devserver”启动开发服务器。现在我希望,如果我对 *.jsp 进行更改,例如,这些更改将在开发服务器上自动更新。这是你的情况吗?

我注意到,如果我对目标文件夹下的 *.jsp 文件进行更改,那么 devserver 将按照我的预期看到这些更改和更新。我认为我的问题在于 Eclipse 没有将更改复制到目标文件夹,但不确定是否应该这样做?

有人对我应该如何进行调查有任何建议吗?我已经没有想法了:-/

提前感谢您提供的任何 cmets。

P.s 我知道我可以运行“mvn package”来更新文件,但这很慢,并且在执行两次后开发服务器会耗尽内存。

【问题讨论】:

    标签: eclipse google-app-engine maven


    【解决方案1】:

    这可能有点痛苦,具体取决于您想要的工作方式以及您使用的 Eclipse 版本。

    1. 如果您还没有安装 m2e-wtp 插件。这是让 appengine 项目在 Eclipse 中运行的秘诀。请注意,这不是 m2e - 而是另一个插件。

    2. 安装 GPE - 如果你还没有安装 GPE 的 google 插件

    3. 确保您的项目由 m2e 作为 maven 项目进行管理。

    4. 进入您的项目属性 - 使用 GPE(列在“Google”下)将其作为 appengine 项目启用。当你在这里时,不要忘记勾选 HRD。

    5. 转到您的项目构建路径(属性 -> Java 构建路径)。

      • 确保在源选项卡上您的 src/main/resources 没有 ** 排除项。
      • 确保在库选项卡上您拥有三个库“JDK”、“Google Appengine”和“Maven 依赖项”,仅此而已
      • 确保在 order 和 export 选项卡上 appengine 依赖项高于 maven 依赖项。

    这听起来很荒谬 - 我不太确定为什么它仍然如此痛苦,但这是成功的好方法。一旦完成,这应该允许您在 eclipse 本身的调试中运行,热加载代码、jsps、css、脚本等。我在 helios、indigo 和 juno 中完成了这项工作。

    您可以阅读有关 m2e-wtp 设置说明 here 的更多信息。他们指的是 GWT,但对于 appengine 来说也是一样的(我不知道为什么强调在 GAE 上使用 GWT),因为它实际上是关于 GPE 和 Maven 的正确设置。

    您还会发现您可能需要非常频繁地重复第 5 步的某些部分 - 如果您的应用未正确加载,请快速查看以确保您的资源未被排除。当您使用 m2e 插件更新项目配置时会发生这种情况。

    wtp-m2e 插件会在修改资源时更新目标文件夹 - 所以这也应该可以解决您从命令行运行的问题,但我不能保证 - 我更喜欢直接从 eclipse 中运行。

    【讨论】:

    • 非常感谢尼克的全面回答。我会在今天晚些时候试一试。我实际上在使用 Google Eclipse 插件,发现它非常好,但我决定更改我的 Eclipse 版本并将 Maven 添加到组合中,因为我需要依赖管理。我会让你知道我是怎么过的:-)
    • 嗨尼克,我已经完全按照你所说的进行了尝试,但是没有运气日食在我的脸上抛出错误,这真的很令人沮丧,以下是我的错误,java.lang.NullPointerException at com。 google.appengine.eclipse.core.properties.ui.GaeProjectPropertyPage.saveChangesToAppEngineWebXml(GaeProjectPropertyPage.java:890) 在插件 com.google.gdt.eclipse.core
    • 另外,我收到另一个错误 Description Resource Path Location Type The App Engine SDK '/Users/Ramesh/.m2/repository/com/google/appengine/appengine-api-1.0-sdk项目构建路径上的 /1.9.3/appengine-api-1.0-sdk-1.9.3.jar' 无效(SDK 位置 '/Users/Ramesh/.m2/repository/com/google/appengine/appengine-api -1.0-sdk/1.9.3/appengine-api-1.0-sdk-1.9.3.jar' 不是目录) RameshProfile 未知的 Google App Engine 问题 eclipse 到底想要什么?
    • 此类错误在 Eclipse 中非常令人沮丧。不幸的是,我可能无法帮助您解决它们。我对第二个的建议是检查您的项目配置。项目 -> 属性 -> Google -> AppEngine 并检查您是否使用了内置 SDK。检查“配置 SDKS”。接下来,项目-> 属性-> Java 构建路径。在“源”上,确保您没有任何源文件夹的排除项。在“库”上,您应该没有 jar 文件,只有“Appengine SDK”、“JRE”和“Maven 依赖项”。在“订购和导出”上,确保“Appengine SDK”高于“Maven 依赖项”。
    【解决方案2】:

    我和你有同样的问题,但是我用其他方法解决了。我使用 FileSync 插件(可以在市场上找到)。 使用此插件,您可以配置 输入目录 (webapp) 和 输出目录 (target)。 对 webapp 所做的任何更改都将传递给目标。 我也帮忙了。

    【讨论】:

      【解决方案3】:

      你可以像这样使用 rsync:

           rsync -r --existing   src/main/webapp/ target/ROOT
      

      其中“ROOT”是项目构建的最终名称。

      【讨论】:

        【解决方案4】:

        以下几点对我有用。

        确保在 order 和 export 选项卡上 appengine 依赖项高于 maven 依赖项。

        【讨论】:

        • 在下面?你的帖子下面什么都没有。您能否提供您所指的帖子的链接?
        • 您需要确保在 order 和 export 选项卡上 appengine 依赖项高于 maven 依赖项。
        • 在 Eclipse 构建路径设置中检查应用引擎依赖项是否高于 maven 依赖项。如果没有选择应用引擎依赖并在右侧菜单中点击向上
        猜你喜欢
        • 2012-04-05
        • 2012-04-26
        • 2011-12-25
        • 1970-01-01
        • 2014-07-09
        • 2015-04-23
        • 1970-01-01
        • 2018-06-13
        • 1970-01-01
        相关资源
        最近更新 更多