Maven GWT - 仅输出 Javascript 文件

Maven GWT - Output only Javascript files

本文关键字:Javascript 文件 输出 GWT Maven      更新时间:2023-09-26

我正在尝试使用GWT从Java文件生成Javascript。
我正在使用Maven来构建我的GWT项目,但现在我正在尝试缩短Maven构建时间。
我不是Maven专家,所以我来到了这里。
似乎Maven正在从我的Java文件生成.class文件,我认为这不是必需的,因为我只需要Javascript文件,而GWT是源代码编译器的源代码。
我不需要任何罐子,战争或其他任何东西。只是Javascript文件。
这是我的POM文件:

<project 
xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.app</groupId>
<artifactId>webapp</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<dependencies>
    <dependency>
        <groupId>org.timepedia.exporter</groupId>
        <artifactId>gwtexporter</artifactId>
        <version>2.4.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.google.gwt</groupId>
        <artifactId>gwt-user</artifactId>
        <version>2.7.0</version>
        <scope>provided</scope>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.2</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>gwt-maven-plugin</artifactId>
            <version>2.7.0</version>
            <executions>
                <execution>
                    <configuration>
                        <webappDirectory>
                            ${WEBAPP_DIRECTORY} 
                        </webappDirectory> 
                    </configuration>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
    <sourceDirectory>src</sourceDirectory>
</build>

  1. maven编译你的.java文件并使用javac生成.class是可以的,这保证了你的java语法是正确的,你可以在任何IDE中使用你的源代码。所以忽略它们。
  2. 为了将代码编译为 JS,您必须配置 maven 来执行 GWT 编译器,这是使用 gwt-maven 插件完成的。请注意,您的 Java 代码应该与模拟的 GWT JRE 兼容,因此需要考虑一些限制。
  3. 一切正常后,您将在文件夹中获得JS代码 target/artifactId-version/moduleName .您将获得在网络服务器中发布所需的所有内容。因此,您将获得一个module.nocache.js文件,该文件是用于加载代码的引导脚本,以及一些MD5.cache.jsMD5.cache.html文件,具体取决于您在项目中使用的链接器和您选择的排列数量。
  4. 当然,如果使用单个脚本链接器,则可以折叠所有排列并生成唯一的输出文件。

根据您的配置,您似乎想使用 gwt-exporter 将 java api 导出到 js,您可以使用 jsUpload maven 项目作为参考,这是用 GWT 编写的 gwtupload 库的 JS 导出版本。

[编辑]

对于生成 JS 的 Web 服务,我将直接调用编译器,而不是通过 maven 调用。它将节省 mvn 花费在解析配置、检查依赖项、运行不需要的任务等上的大量时间。您可以简单地运行maven编译并获取ps -feawww的输出,或者查看gwt-maven CompileMojo以弄清楚如何编写args列表。我将考虑使用带有增量选项的草稿模式编译。