使用gwt-maven插件生成的项目:eclipse



我用mvn原型:生成-DarchetypeGroupId=org.codehaus.mojo-DarcheypeArtifactId=gwt-maven插件-Darchetype版本=2.5.0

在eclipse juno中导入了该项目。

我得到的第一个错误是:插件执行不在生命周期配置中:org.codehaus.mojo:gwt-maven-插件:2.5.0:i18n(执行:默认,阶段:生成源)

在pom文件中。

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<version>2.5.0</version>
<executions>
  <execution>
    <goals>
      <goal>compile</goal>
      <goal>test</goal>
      <goal>i18n</goal>
      <goal>generateAsync</goal>
    </goals>
  </execution>
</executions>
<!-- Plugin configuration. There are many available options, see 
  gwt-maven-plugin documentation at codehaus.org -->
<configuration>
  <runTarget>dashboard.html</runTarget>
  <hostedWebapp>${webappDirectory}</hostedWebapp>
  <i18nMessagesBundle>com.farheap.jsi.dashboard.client.Messages</i18nMessagesBundle>
</configuration>

此外,该代码还包含找不到的GreetingServiceAsync。

private final GreetingServiceAsync greetingService = GWT.create(GreetingService.class);

您有两个选项:

  1. 您可以添加特殊的(非琐碎的)org.eclipse.m2e:生命周期映射插件配置到您的POM。请参阅此处:为什么我收到";插件执行不包括在GWT的生命周期配置中";错误

  2. 或者在EclipsePOM编辑器中将此问题标记为忽略,然后调用mvn gwt:i18n。你可以为它创建一个方便的快捷启动程序。Eclipse会记住你的决定,忽略什么,它会为项目永久存储到.settings目录中。

在典型的开发过程中,本地化消息不会经常更改,因此第二种选择通常更方便,并加快了构建速度。

这适用于大多数GWT插件目标!即使是GWT编译也很少是必要的,因为DevMode直接处理Java代码,而不是生成JavaScrip。因此,在实践中,你必须在一开始就至少喊一次所有的目标,然后在没有目标的情况下生活几周;基本的EclipseJDT编译就足够了。

如果您稍后决定不在实际应用程序中使用GWT本地化框架,那么您可以从POM中完全删除目标i18n。调用目标i18n生成(普通)Sample.java所需的文件{project}/target/generated-sources/gwt/my/code/client/Messages.java

此外,该代码还包含找不到的GreetingServiceAsync。

从命令行或Eclipse Run as -> Maven install菜单运行构建mvn install。在命令行的情况下,mvn gwt:generateAsync应该足够了。这个目标产生了{project}targetgenerated-sourcesgwtmycodeclientGreetingServiceAsync.java,而这正是你所缺少的。Eclipse并没有自动为您做这件事,因为它被前一期i18n所阻止,而生命周期配置没有涵盖它。所以,是的,你提到的问题是相互关联的。

相关内容

  • 没有找到相关文章

最新更新