首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gwt-maven-plugin javascript编译错误

gwt-maven-plugin javascript编译错误
EN

Stack Overflow用户
提问于 2011-05-23 00:16:34
回答 1查看 1.5K关注 0票数 1

我们将我们的构建系统移动到使用maven。我们的项目之一使用gwt (Version2.2.0)。它编译成javascript,在Eclipse上没有任何错误,但是我们在maven中遇到了一些问题。

以下是运行"mvn干净包“时的错误消息

代码语言:javascript
复制
[INFO]
[INFO] --- gwt-maven-plugin:2.2.0:compile (default) @ Analytics ---
[INFO] auto discovered modules [com.ivstel.af.AF]
[INFO] Compiling module com.ivstel.af.AF
[INFO]    Validating newly compiled units
[INFO]       [ERROR] Errors in 'jar:file:/C:/Users/Croydon.IVSTEL1/.m2/repository/com/google/gwt/google-apis/gwt-visualization/1.1.1/gwt-visualization-1.1.1.jar
!/com/google/gwt/visualization/client/CommonOptions.java'
[INFO]          [ERROR] Line 61: The method toJsArrayString(String[]) is undefined for the type ArrayHelper
[INFO]       [ERROR] Errors in 'jar:file:/C:/Users/Croydon.IVSTEL1/.m2/repository/com/google/gwt/google-apis/gwt-visualization/1.1.1/gwt-visualization-1.1.1.jar
!/com/google/gwt/visualization/client/DataTable.java'
[INFO]          [ERROR] Line 140: The method toJsArrayInteger(int[]) is undefined for the type ArrayHelper
[INFO]       [ERROR] Errors in 'jar:file:/C:/Users/Croydon.IVSTEL1/.m2/repository/com/google/gwt/google-apis/gwt-visualization/1.1.1/gwt-visualization-1.1.1.jar
!/com/google/gwt/visualization/client/DataView.java'
[INFO]          [ERROR] Line 62: The method toJsArrayInteger(int[]) is undefined for the type ArrayHelper
[INFO]          [ERROR] Line 74: The method toJsArrayInteger(int[]) is undefined for the type ArrayHelper
[INFO]          [ERROR] Line 82: The method toJsArrayInteger(int[]) is undefined for the type ArrayHelper
[INFO]          [ERROR] Line 94: The method toJsArrayInteger(int[]) is undefined for the type ArrayHelper
[INFO]       [ERROR] Errors in 'jar:file:/C:/Users/Croydon.IVSTEL1/.m2/repository/com/google/gwt/google-apis/gwt-visualization/1.1.1/gwt-visualization-1.1.1.jar
!/com/google/gwt/visualization/client/VisualizationUtils.java'
[INFO]          [ERROR] Line 30: The method toJsArrayString(String[]) is undefined for the type ArrayHelper
[INFO]          [ERROR] Line 44: The method toJsArrayString(String[]) is undefined for the type ArrayHelper

但是,gwt-visualization-1.1.1.jar\com\google\gwt\ajaxloader\client\ArrayHelper.java中的有问题的罐子确实包含了toJsArrayInteger函数。

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd">

  <!-- POM file generated with GWT webAppCreator -->
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.ivstel.analytics</groupId>
  <artifactId>Analytics</artifactId>
  <packaging>war</packaging>
  <version>1</version>
  <name>Analytics</name>

  <properties>
    <!-- Convenience property to set the GWT version -->
    <gwtVersion>2.2.0</gwtVersion>

    <!-- GWT needs at least java 1.5 -->
    <maven.compiler.source>1.5</maven.compiler.source>
    <maven.compiler.target>1.5</maven.compiler.target>
    <webappDirectory>${project.build.directory}/${project.build.finalName}</webappDirectory>

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    <!-- Shared version number properties -->
    <com.google.gwt.version>${gwtVersion}</com.google.gwt.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>com.google.gwt</groupId>
      <artifactId>gwt-servlet</artifactId>
      <version>${com.google.gwt.version}</version>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>com.google.gwt</groupId>
      <artifactId>gwt-user</artifactId>
      <version>${com.google.gwt.version}</version>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>com.google.gwt.google-apis</groupId>
      <artifactId>gwt-maps</artifactId>
      <version>1.0.4</version>
    </dependency>

    <dependency>
      <groupId>com.google.gwt.google-apis</groupId>
      <artifactId>gwt-visualization</artifactId>
      <version>1.1.1</version>
    </dependency>

    <dependency>
      <groupId>org.gwtmultipage</groupId>
      <artifactId>gwtmultipage-core</artifactId>
      <version>1.0.0.Beta5</version>
    </dependency>

    <!-- Other dependencies ....... -->

  </dependencies>

  <build>
    <!-- Generate compiled stuff in the folder used for developing mode -->
    <outputDirectory>${webappDirectory}/WEB-INF/classes</outputDirectory>

    <plugins>

      <!-- GWT Maven Plugin -->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>gwt-maven-plugin</artifactId>
        <version>2.2.0</version>
        <executions>
          <execution>
            <goals>
              <goal>compile</goal>
              <goal>test</goal>
              <goal>i18n</goal>
              <!-- http://stackoverflow.com/questions/3611775/gwt-maven-eclipse-plugin-compilation-fails-due-to-duplicate-class -->
              <!-- <goal>generateAsync</goal> -->
            </goals>
          </execution>
        </executions>
        <!-- Plugin configuration. There are many available options, see gwt-maven-plugin 
          documentation at codehaus.org -->
        <configuration>
          <runTarget>AF.html</runTarget>
          <hostedWebapp>${webappDirectory}</hostedWebapp>
          <i18nMessagesBundle>com.ivstel.af.client.Messages</i18nMessagesBundle>
        </configuration>
        <dependencies>
            <dependency>
              <groupId>com.google.gwt</groupId>
              <artifactId>gwt-servlet</artifactId>
              <version>${com.google.gwt.version}</version>
            </dependency>
            <dependency>
              <groupId>com.google.gwt</groupId>
              <artifactId>gwt-user</artifactId>
              <version>${com.google.gwt.version}</version>
            </dependency>
            <dependency>
              <groupId>com.google.gwt</groupId>
              <artifactId>gwt-dev</artifactId>
              <version>${com.google.gwt.version}</version>
            </dependency>
        </dependencies>
      </plugin>

      <!-- Copy static web files before executing gwt:run -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.1.1</version>
        <executions>
          <execution>
            <phase>compile</phase>
            <goals>
              <goal>exploded</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <webappDirectory>${webappDirectory}</webappDirectory>
        </configuration>
      </plugin>

    </plugins>
  </build>

  <profiles>
    <profile>
      <id>noTest</id>
       <properties>
         <maven.test.skip>true</maven.test.skip>
       </properties>
    </profile>
  </profiles>

</project>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-23 01:20:20

问题是,我使用的是较早版本的gwt-map,它使用的是较旧版本的ajaxloader。由于gwt-map依赖项在gwt-可视化之前,编译器忽略了gwt-可视化中的ajaxloader类。

似乎解决这个情景的理想化方法是使用noredist构件,然后显式地包含gwt-ajaxloader依赖项。我们还必须从ajaxloader (gwt-maven-plugin需求)中排除gwt-dev依赖。

代码语言:javascript
复制
    <dependency>
      <groupId>com.google.gwt.google-apis</groupId>
      <artifactId>gwt-ajaxloader</artifactId>
      <version>1.1.0</version>
      <exclusions>
        <exclusion>
          <groupId>com.google.gwt</groupId>
          <artifactId>gwt-dev</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>com.google.gwt.google-apis</groupId>
      <artifactId>gwt-maps</artifactId>
      <version>1.1.0</version>
      <classifier>noredist</classifier>
    </dependency>

    <dependency>
      <groupId>com.google.gwt.google-apis</groupId>
      <artifactId>gwt-visualization</artifactId>
      <version>1.1.1</version>
      <classifier>noredist</classifier>
    </dependency>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6091713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档