如何在IntelliJ 12中创建新的Google App Engine项目?

时间:2014-02-23 16:02:24

标签: google-app-engine intellij-idea

我首先要说的是我之前没有GAE经验 - 我试图让GAE在IntelliJ 12中工作但有问题,想知道是否有人可以查看我在做什么并告诉我是否这里有什么不好的。

步骤:

  1. 使用JDK 1.7.0_51在IntelliJ中创建Java项目。点击下一步。

  2. 在所需的技术页面上选择Web Application > Google App Engine     通往appengine-java-sdk-1.8.9的路径。单击“完成”。

  3. 将文件从appengine-java-sdk-1.8.9/demos/new_project_template/复制到项目     目录
  4. 我现在有一个主目录结构,如:

    .
    ├── COPYING
    ├── build.xml
    ├── html
    │   └── index.html
    ├── src
    │   ├── META-INF
    │   │   └── jdoconfig.xml
    │   ├── WEB-INF
    │   │   ├── appengine-web.xml
    │   │   └── web.xml
    │   ├── log4j.properties
    │   ├── logging.properties
    │   └── org
    │       └── example
    │           └── HelloAppEngineServlet.java
    ├── test.iml
    └── web
        ├── WEB-INF
        │   ├── appengine-web.xml
        │   └── web.xml
        └── index.jsp
    

    运行此命令将在web目录中运行带有index.jsp的Web服务器。

    有关此问题的一些问题 - 是否应该有'网络'和'html'目录?为什么有两个WEB-INF目录,它们是否应该相同?每次更新时都应该手动编辑它们吗?

    如果我按照https://developers.google.com/appengine/docs/java/gettingstarted/creating的说明,它会提到一个'war'文件夹 - 我承认我对'war','web'和'html'文件夹感到困惑 - 我觉得我在某个地方'我们也看到引用了'www'文件夹。这些文件夹名称真的重要吗?

    按照教程我在'src'文件夹中创建一个留言簿文件夹并制作java文件。当我在web.xml中输入信息时(两者都有)我得到了行

    的错误
    <servlet-name>guestbook</servlet-name>
    

    “身份约束字段'web-app-servlet-name-uniqueness'匹配元素'web-app',但此元素没有简单类型”

    最重要的是 - guestbook.GuestbookServlet无法解决。

    必须有一种更简单的方法让它在Intellij中运行 - 任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:4)

不幸的是,IntelliJ并没有使这个过程变得简单。看起来他们希望你使用Maven来处理很多这样的事情。但是这会让那些试图在IntelliJ上开始使用GAE的人变得更加困难。

你的项目现在一团糟。您已将IntelliJ为您的Web模块添加的内容与演示项目中的一些文件组合在一起。首先,删除文件并从IntelliJ中删除您的Web模块。

现在回到你想要使用的demo文件夹,它应该包括COPYING,build.xml以及src和war目录。将所有这些复制到您的项目中。然后进入项目结构 - &gt;模块和导入模块。这将允许IntelliJ检测您的Web模块,并避免创建重复的文件和目录。

您还需要在Settings-&gt; IDE Settings-&gt; Application Servers下配置Application Server。添加Google App Engine开发服务器并指定您的SDK目录。

然后返回到您的项目结构 - &gt;模块 - &gt;依赖项并添加库。选择刚刚定义的Application Server Library。如果您的项目使用更高级的GAE功能,则需要转到Project Structure-&gt; Artifacts并将库添加到工件中。

此外,对于神器的设置,您需要创建一个指向战争目标的“爆炸战争”定义。

可能需要更多配置......但我现在想不到它。让我知道你接下来会遇到什么,我可以尝试帮助。

答案 1 :(得分:0)

IntelliJ IDEA 14 Ultimate集成了GAE支持。这是多么全面,我还不完全确定。我将在稍后更新此答案并提供更多详细信息。

https://www.jetbrains.com/idea/features/google_app_engine.html