【问题标题】:Generated project with gwt-maven-plugin : eclipse使用 gwt-maven-plugin 生成的项目:eclipse
【发布时间】:2013-02-15 00:12:11
【问题描述】:

我创建了一个 GWT 项目 mvn archetype:generate -DarchetypeGroupId=org.codehaus.mojo -DarchetypeArtifactId=gwt-maven-plugin -DarchetypeVersion=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);

【问题讨论】:

  • 我用这个修复了插件错误:

标签: gwt-maven-plugin


【解决方案1】:

你有两个选择:

  1. 您可以添加特殊的(非平凡的)org.eclipse.m2e:lifecycle-mapping 插件 配置到您的 POM。见这里:Why am I receiving a "Plugin execution not covered by lifecycle configuration with GWT" error?

  2. 或者在 Eclipse POM 编辑器中将此问题标记为忽略,然后调用mvn gwt:i18n。您可以为它创建一个方便的快捷方式启动器。 Eclipse 会记住您决定忽略哪些内容,并将其永久存储到项目的 .settings 目录中。

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

这适用于大多数 GWT 插件目标!即使是 GWT 编译也很少需要,因为 DevMode 直接使用 Java 代码而不是生成的 JavaScrips。所以在实践中,你必须在开始时至少调用一次所有目标,然后在没有它们的情况下存活数周;基本的 Eclipse JDT 编译就足够了。

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

此外,代码中还包含一个无法找到的 GreetingServiceAsync。

从命令行或Eclipse Run as -&gt; Maven install 菜单运行构建mvn install。 在命令行mvn gwt:generateAsync 的情况下应该足够了。这个目标生成{project}\target\generated-sources\gwt\my\code\client\GreetingServiceAsync.java,这就是你所缺少的。 Eclipse 没有自动为您执行此操作,因为它被上一期的i18n 未被生命周期配置覆盖 所阻止。所以是的,你提到的问题是相关的。

【讨论】:

  • 我不明白为什么 gwt-maven-plugin 不将 项添加到 pom.xml 以便 Eclipse 不会抱怨。就像他们的文档假装问题不存在一样。
猜你喜欢
  • 2012-11-18
  • 2015-01-23
  • 2012-02-02
  • 2011-07-12
  • 1970-01-01
  • 1970-01-01
  • 2011-11-16
  • 2012-10-15
  • 2012-06-03
相关资源
最近更新 更多