当前位置: 首页 > 知识库问答 >
问题:

无法在maven编译阶段执行gwt:compile

司徒捷
2023-03-14

我正在与Maven一起构建一个GWT项目。我为gwt编译添加了gwt maven插件,如下所示:

<dependency>
    <groupId>com.google.gwt</groupId>
    <artifactId>gwt-user</artifactId>
    <version>2.5.0</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>com.google.gwt</groupId>
    <artifactId>gwt-dev</artifactId>
    <version>2.5.0</version>
    <scope>provided</scope>
</dependency>
<build>
   <plugins>
      <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>gwt-maven-plugin</artifactId>
          <version>2.5.0</version>
          <executions>
          <execution>
              <configuration>
                  <module>com.karthik.ui.MainWidgets</module>
              </configuration>
              <goals>
                   <goal>compile</goal>
              </goals>
           </execution>
           </executions>
        </plugin>
    </plugins>
</build>

我在executions标签下包含了编译目标,希望在编译阶段执行GWT编译。但GWT编译仅在包阶段或运行mvn package命令时执行
即使为gwt-dev依赖项设置了提供的作用域,我也会收到如下所示的警告。

[WARNING] Don't declare gwt-dev as a project dependency. This may introduce complex dependency conflict

1) 为什么在编译阶段不执行GWT编译
2)我应该为GWT(GWT用户、GWT开发人员)依赖项设置什么范围来克服警告?

共有1个答案

董高逸
2023-03-14
[WARNING] Don't declare gwt-dev as a project dependency. This may introduce complex dependency conflict

这是建议,不是要求。不过,添加gwt-dev有很好的理由:

  • 如果你写一个生成器
  • 如果你写一个链接器

如果执行这些操作,请确保将gwt dev标记为

如果您不做这些事情,就不需要将gwt dev作为项目依赖项,尽管如果您喜欢混合使用gwt maven插件和gwt版本,作为插件的依赖项可能会有所帮助。

为什么不包括gwt-dev?除了上面的情况,您可能不需要引用那个jar中的类——您需要的一切都在gwt-user(或服务器运行时的gwt-servlet)中。gwt-maven-plugin将自动将gwt-dev添加到类路径中,以便正确运行编译器。

至于“为什么在编译阶段不执行GWT编译?”:

您专门将gwt maven插件配置为运行gwt:compile,但您忘记告诉它何时运行,因此它在默认时间运行它-在准备包期间。相反,您需要指定

但是,编译阶段可能太早了—如果它恰好在您的。java文件被编译为。类字节码,编译器将失败。从生命周期文档中考虑另一个时间,如<代码>进程类< /代码>或更高版本。https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html:

后处理编译生成的文件,例如对Java类进行字节码增强。

 类似资料:
  • 本文向大家介绍JavaScript运行过程中的“预编译阶段”和“执行阶段”,包括了JavaScript运行过程中的“预编译阶段”和“执行阶段”的使用技巧和注意事项,需要的朋友参考一下  javascript相对于其它语言来说是一种弱类型的语言,在其它如java语言中,程序的执行需要有编译的阶段,而在javascript中也有类似的“预编译阶段”(javascript的预编译是以代码块为范围<scr

  • 运行似乎surefire没有执行其测试目标(或者至少没有选择我在配置中包含的测试)。 这是一个多模块maven项目,目前全部在groovy中,其结构类似于以下内容: 我在pom中有以下surefire配置。xml: 但是,当我针对这个pom执行

  • 项目无法执行maven生命周期映射的两个生命周期阶段: null

  • OpenResty 处理一个请求,它的处理流程请参考下图(从 Request start 开始): 我们在这里做个测试,示例代码如下: location /mixed { set_by_lua_block $a { ngx.log(ngx.ERR, "set_by_lua*") } rewrite_by_lua_block { ngx.log

  • 我有一个maven项目,它是从git回购复制到我的eclipse上的。它是基于Java8构建的。我要做的第一件事就是做一个 但我收到以下失败信息: 以及汇编设置: 无论我构建项目多少次,我都会得到相同的错误。即使在清理项目并从eclipse中刷新它之后也没有帮助。请导游。 更新: 在添加属性以设置maven编译器插件之后 , 我得到以下错误: 下面是给出MainUITabbed类编译错误的代码片段

  • 问题内容: 构建示例mvn项目后,我添加了依赖项和Java代码。 然后,我通过成功构建了JAR 。最后,尝试运行JAR时遇到错误。 问题答案: 您需要使用以下命令在清单中设置主类 取自这里。 编辑 如果您想将生成的jar与依赖项打包在一起,可以使用此 取自这里。