2011年9月6日火曜日

GWT Maven Pluginでマルチプロジェクト

マルチプロジェクトでGWTを動作させたかったのだが、なかなかうまくいかなかった。 が、<compileSourcesArtifacts>を使用して初めて動作したので、備忘録の意味でも残しておく。

  • 参照するプロジェクト(artifactID=gwt-sample)
  • 参照されるプロジェクト(artifactID=gwt-module)

  • <!-- GWT Maven Plugin -->
    <plugin>
     <groupId>org.codehaus.mojo</groupId>
     <artifactId>gwt-maven-plugin</artifactId>
     <version>2.3.0-1</version>
     <executions>
      <execution>
       <goals>
        <goal>compile</goal>
        <goal>test</goal>
        <goal>i18n</goal>
        <goal>generateAsync</goal>
       </goals>
      </execution>
     </executions>
     <configuration>
      <runTarget>Sample.html</runTarget>
      <hostedWebapp>${webappDirectory}</hostedWebapp>
      <i18nMessagesBundle>
       jp.tkym.labs.gwt.client.Messages;
      </i18nMessagesBundle>
      <!-- 参照するプロジェクトを指定します. -->
      <compileSourcesArtifacts>
       <!-- [group-id]:[artifactId]を指定します. -->
       <compileSourcesArtifact>
        jp.tkym.labs:gwt-module
       </compileSourcesArtifact>
      </compileSourcesArtifacts>
     </configuration>
    </plugin>
    
    module側にはsource.jarを生成するようpomを設定する
       <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <executions>
         <execution>
          <id>attach-sources</id>
          <goals>
           <goal>jar</goal>
          </goals>
         </execution>
        </executions>
       </plugin>