java - Maven GWT - 仅输出 Javascript 文件

标签 java javascript maven gwt

我正在尝试使用 GWT 从 Java 文件生成 Javascript。
我正在使用 Maven 构建我的 GWT 项目,但现在我正试图缩短 Maven 构建时间。
我不是 Maven 专家,所以我来到这里..
似乎 Maven 正在从我的 Java 文件生成 .class 文件,我认为这不是必需的,因为我只需要 Javascript 文件,而 GWT 是源代码编译器。
我不需要任何 jar 、 war 或其他任何东西。只是 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 plugin 完成的。 .请注意,您的 Java 代码应与 emulated GWT JRE 兼容。 , 因此需要考虑一些限制条件。
  3. 一旦一切正常,您将在文件夹 target/artifactId-version/moduleName 中获得您的 JS 代码。您将获得在网络服务器中发布所需的所有内容。所以你会得到一个 module.nocache.js 文件,它是加载代码的引导脚本,还有一些 MD5.cache.jsMD5.cache。 html 文件取决于您在项目中使用的链接器和您选择的排列数。
  4. 当然可以collapse all permutations如果您使用 single script linker,则生成一个唯一的输出文件.

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

[编辑]

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

关于java - Maven GWT - 仅输出 Javascript 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27289398/

相关文章:

java - 如何布局2个按钮

java - 如何将注册表项保存到文件

java - 模拟静态方法时出现内容类型错误

javascript - 使用 Javascript 显示和隐藏文本

javascript - 在矩阵中添加数字

java - 空 Autowiring 字段

java - 使用鼠标瞄准 LibGDX

javascript - 在一个元素上切换两个类而不切换同级元素

java - Liquibase 总是生成用于创建/删除索引的变更集

java - 在 Netbeans 中生成 Javadoc 被禁用