Eclipse没有为GWT构建WEB-INF /类

时间:2011-07-06 14:38:40

标签: eclipse gwt maven-2 gwt-platform

我一直在使用 GWT Maven ,但无论我尝试做什么,Eclipse都不希望将源代码编译为通常的 < em> webapp / WEB-INF / classes 文件夹自动生成。我尝试使用GWT-Platform中的 gwtp-sample-basic 样本重现问题;可以在这里找到: gwtp-samples-0.6.zip

在没有类的情况下通过Jetty部署和运行项目会导致以下预期错误:

[WARN] Could not instantiate listener example.project.server.MyGuiceServletContextListener
java.lang.ClassNotFoundException: example.project.server.MyGuiceServletContextListener
...
[WARN] EXCEPTION 
java.lang.ClassNotFoundException: com.google.inject.servlet.GuiceFilter
...
[WARN] failed guiceFilter: javax.servlet.UnavailableException: com.google.inject.servlet.GuiceFilter
...
[WARN] Failed startup of context com.google.apphosting.utils.jetty.DevAppEngineWebAppContext@aec7ab1{/,/home/user/Documents/Workspace/project/src/main/webapp}
javax.servlet.UnavailableException: com.google.inject.servlet.GuiceFilter
...

使用Ant,这些类可以构建到正确的文件夹 webapp / WEB-INF / classes ,但是对于我尝试过的任何Maven配置都没有这样做。

  • 这可能是Maven特有的吗?
  • 我可能忘记在Eclipse中配置什么?
  • 任何有类似问题的人,还找到了解决问题的方法吗?

旁注:使用Eclipse的默认Sonatype Maven插件。还尝试使用webAppCreator工具重新初始化Maven项目,但它没有改变结果。使用提供的默认运行配置。 webapp / WEB-INF / lib自动包含所需的库。

1 个答案:

答案 0 :(得分:1)

Maven通常会编译成target/classes。当您使用Maven构建WAR时,Maven将从那里复制类,以便它们最终位于WAR中的正确位置。

所以问题是:“运行项目”是什么意思?通常,这意味着构建WAR并部署它。如果你这样做,一切都应该有效。

我的猜测是你要避免这种努力,因为它需要相当长的时间。但除非你具体告诉我们你如何设置你的项目以及你如何“运行”它(你使用哪个容器,你使用哪些插件),这是不可能的。

[编辑] 您的主要问题可能是类路径如何移交给Jetty以及它是否尊重它或构建自己的。

您可能希望查看GWT Maven Plugin,其中“将nicelly整合到Eclipse中,感谢M2Eclipse和Google Eclipse插件。”

this blog post也可以帮到你。