2

maven-surefire-plugin で構成されたルート pom と、gwt-maven-plugin で構成された gwt モジュール pom があります。Maven 3 にアップグレードした後、奇妙なエラーが発生します。

プロジェクトは、ここで説明されているように構成されています: GwtTest テストを標準単体テストから分離する

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.6</version>
  <configuration>
    <useSystemClassLoader>true</useSystemClassLoader>
    <useManifestOnlyJar>false</useManifestOnlyJar>
    <forkMode>always</forkMode>
    <properties>
      <property>
        <name>usedefaultlisteners</name>
        <value>false</value>
      </property>
      <property>
        <name>listener</name>
        <value>org.uncommons.reportng.HTMLReporter,org.uncommons.reportng.JUnitXMLReporter</value>
      </property>
    </properties>
    <argLine>-server -Xmx8192m -XX:MaxPermSize=1024M -XX:+CMSClassUnloadingEnabled</argLine>
    <excludes>
      <exclude>**/*GwtTest*.java</exclude>
    </excludes>
  </configuration>
</plugin>

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>gwt-maven-plugin</artifactId>
  <version>2.5.0</version>
  <dependencies>
    <dependency>
      <groupId>com.google.gwt</groupId>
      <artifactId>gwt-user</artifactId>
      <version>${gwt.version}</version>
    </dependency>
  </dependencies>
  <configuration>
  <modules>
    <module>my.app.gwt</module>
  </modules>
  <runTarget>/</runTarget>
  <extraJvmArgs>-Xss512m -Xmx2048m -XX:MaxPermSize=256M</extraJvmArgs>
  <hostedWebapp>${project.build.directory}/${project.build.finalName}</hostedWebapp>
  <includes>**/*GwtTestSuite.java</includes>
  <copyWebapp>true</copyWebapp>
  <logLevel>INFO</logLevel>
  <persistentunitcache>false</persistentunitcache>
  <draftCompile>${gwt.draftCompile}</draftCompile>
  <deploy>${project.build.directory}/${project.build.finalName}/WEB-INF/deploy</deploy>
  <disableCastChecking>true</disableCastChecking> 
  <mode>htmlunit</mode>
  <skipTests>${skipGwtTests}</skipTests></configuration>
  <executions>
    <execution>
      <id>gwt-compile</id>
      <goals>
        <goal>compile</goal>
      </goals>
      <phase>compile</phase>
    </execution>
    <execution>
      <id>gwt-test</id>
      <goals>
        <goal>compile</goal>
        <goal>test</goal>
      </goals>
      <phase>test</phase>
    </execution>
  </executions>
</plugin>

それはmaven 2で動作しますが、maven 3では次のようになります:

[ERROR] Failed to execute goal org.codehaus.mojo:gwt-maven-plugin:2.5.0:test (gwt-test) on project my-webapp: Unable to parse configuration of mojo org.codehaus.mojo:gwt-maven-plugin:2.5.0:test: When configuring a basic element the configuration cannot contain any child elements. Configuration element 'excludes'. -> [Help 1]

gwt プラグインは、surefire プラグインの階層スタイルを解析できないようです。

gwt プラグイン内のすべての除外/インクルードを 1 つのカンマ区切りの文字列行として設定した場合にのみコンパイルされますが、gwt テストをグローバルに除外し、ローカルに含める必要があるため、うまくいきません。

ただし、包含/除外セクションはマージされるため、2 つの互換性のない構文定義は連携しません。

誰かが私にヒントをくれることを願っています。

4

1 に答える 1

0

Maven Surefire を直接使用して GWTTestCases を実行できます。このリンクを参照してください。

于 2013-01-08T05:30:40.367 に答える