GWT Maven:模块'xxx'可能需要(重新)编译

时间:2013-07-06 20:27:25

标签: eclipse maven gwt pom.xml

问题:继续“模块'xxx'可能需要(重新)编译”。

步骤:

  1. 将示例GWT-Maven项目导入eclipse(“MobileWebApp” - 来自GWT SDK)。
  2. GWT |编译项目。
  3. 在生产模式下运行(没有codesvr参数,即使用“localhost:8888 / MobileWebApp.html”)。
  4. 注意:

    1. 我对GWT和Maven都很新。
    2. 我看了GWT module may need to be (re)compiled REDUX
    3. 开发模式确实有效(我可以调试应用程序)。
    4. 详细步骤:

      1. 将“MobileWebApp”文件夹从GWT SDK(版本2.5.1)中的“samples”文件夹复制到我的eclipse工作区。
      2. 导入项目:File-> Import->现有Maven项目(指向存在pom.xml的“MobileWebApp”文件夹。
      3. 按照以下步骤配置项目:https://developers.google.com/eclipse/docs/faq?hl=iw#gwt_with_maven
      4. 此时我可以将应用程序作为“Web应用程序”运行并进行调试。
      5. 运行GWT |编译:nocache.js正在放置在目标文件夹中。
      6. 现在,当我尝试在生产模式下运行应用程序时,我收到了(重新)编译错误。
      7. 日志:

        1.   

          “DataNucleus Enhancer(版本1.1.4):增强类   DataNucleus Enhancer成功完成了0个类。计时:输入= 713毫秒,增强= 0毫秒,   总= 713毫秒。有关详细信息,请参阅日志   DataNucleus Enhancer已完成,未增强任何类。请查阅日志以获取完整的详细信息“

        2.   

          “编译模块com.google.gwt.sample.mobilewebapp.MobileWebApp   验证单位:   第一次通过时忽略了1个带编译错误的单元。   使用-strict或-logLevel进行编译设置为TRACE或DEBUG以查看所有错误。   编译6个排列   编译排列0 ...   编译排列1 ...   编译排列2 ...   编译排列3 ...   编译排列4 ...   编译排列5 ...   排列编译成功   链接到D:\ workspace \ eclipse \ MobileWebApp \ target \ MobileWebApp-1.0-SNAPSHOT \ mobilewebapp   调用链接器AppCacheLinker   确保您的目标网页的标记声明了一个清单:   链接成功   编译成功 - 152.077s“

        3. “初始化App Engine服务器

            

          06/07/2013 20:12:33 com.google.apphosting.utils.jetty.JettyLogger info   信息:通过com.google.apphosting.utils.jetty.JettyLogger登录到JettyLogger(null)   06/07/2013 20:12:33 com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml   信息:已成功处理D:\ workspace \ eclipse \ MobileWebApp \ target \ MobileWebApp-1.0-SNAPSHOT \ WEB-INF / appengine-web.xml   06/07/2013 20:12:33 com.google.apphosting.utils.config.AbstractConfigXmlReader readConfigXml   信息:已成功处理D:\ workspace \ eclipse \ MobileWebApp \ target \ MobileWebApp-1.0-SNAPSHOT \ WEB-INF / web.xml   06/07/2013 20:12:34 com.google.apphosting.utils.jetty.JettyLogger info   信息:jetty-6.1.x   06/07/2013 20:12:36 com.google.apphosting.utils.jetty.JettyLogger info   信息:已启动SelectChannelConnector@0.0.0.0:8888   06/07/2013 20:12:36 com.google.appengine.tools.development.DevAppServerImpl start   信息:服务器在localhost:8888 /运行   06/07/2013 20:12:36 com.google.appengine.tools.development.DevAppServerImpl start   信息:管理控制台在localhost:8888 / _ah / admin运行   链接模块   命令行模块“com.google.gwt.sample.mobilewebapp.MobileWebApp”的引导链接     链接模块'mobilewebapp'        调用链接器AppCacheLinker           DevMode警告:Clobbering appcache.nocache.manifest允许调试。在部署应用程序之前重新编译!           确保您的目标网页的标记声明了一个清单:   06/07/2013 20:13:38 com.google.apphosting.utils.jetty.AppEngineAuthentication $ AppEngineAuthenticator authenticate   信息:得到/MobileWebApp.html但没有人登录,重定向。“

        4. Pom.xml:https://code.google.com/p/google-web-toolkit/source/browse/trunk/samples/mobilewebapp/

          非常感谢。

2 个答案:

答案 0 :(得分:0)

回答我自己的问题:

1)来自命令:“mvn gwt:run”。

2)Google | GWT编译。

P.S。尽管我很高兴能够解决这个问题(经过几天的痛苦)但我仍然想知道为什么我必须这样做的原因 - 首先在应用程序中午餐然后编译它。非常奇怪 - 以我的拙见。

offtopic This示例应用应该是“offline executable”(至少来自移动版) - 所以我该如何测试呢?我试过(从移动设备运行应用程序一次或两次,以便它将被缓存)切换到飞行模式并导航到应用程序(就像他演示的那样)但显然(?),服务器无法访问。我是否需要启用特定功能才能使用? (我的移动设备是Google-Nexus-4)

答案 1 :(得分:0)

多个步骤:

  1. 更新项目属性 - >使用Deploy GWT maven project with eclipse deploys webapp directory instead of target/project directory

  2. 部署程序集
  3. mvn clean package

  4. mvn gwt:compile
  5. 在eclipse中,点击'GWT Compile Project' - > Advacned - >删除'-war src / main / webapp'参数并点击编译。
  6. 输出应该是这样的 - 链接到target / project-1.0-SNAPSHOT / ModuleName

    现在部署工作正常。