2011年5月 2日 19:15

Maven2でSlim3+Scenic3+PirkaEngineな環境を構築する #gaeja #slim3 #scenic3


配布元にもpom.xmlの設定方法は書いてあるんですが、あれだけだとちょっとかゆいところに手が届かないので自分用で使ってるやつを簡単に晒してみます。(jubeat++でも実際に使用済)

最初にslim3のarchtype-pluginでブランクプロジェクトを作る

mvn archetype:generate -DarchetypeCatalog=http://slim3.googlecode.com/svn/trunk/repository

pom.xmlに追加する部分は要点だけ書いておきます(バージョン番号は新しいのが出たらそれで書き換えればOK)
<project>
  <properties>
    <pirka.version>0.3.0</pirka.version>
    <pirka-slim3.version>0.2.0</pirka-slim3.version>
    <scenic3.version>0.4.2</scenic3.version>
    <slim3.rootPackage>【Your rootPackage】</slim3.rootPackage>
  </properties>
  <repositories>
    <repository>
      <id>maven.deathmarch.jp</id>
      <name>The Deathmarch Maven2 Repository</name>
      <url>http://maven.deathmarch.jp/maven2</url>
      <snapshots>
        <enabled>true</enabled>
        <updatePolicy>always</updatePolicy>
      </snapshots>
    </repository>
  </repositories>
  <dependencies>
    <dependency>
      <groupId>org.pirkaengine</groupId>
      <artifactId>pirka</artifactId>
      <version>${pirka.version}</version>
    </dependency>
    <dependency>
      <groupId>org.pirkaengine</groupId>
      <artifactId>pirka-slim3</artifactId>
      <version>${pirka-slim3.version}</version>
    </dependency>
    <dependency>
      <groupId>scenic3</groupId>
      <artifactId>scenic3</artifactId>
      <version>${scenic3.version}</version>
    </dependency>
  </dependencies>
  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>apt-maven-plugin</artifactId>
          <configuration>
            <encoding>utf-8</encoding>
            <outputDirectory>${generated.src}</outputDirectory>
            <options>
              <option>slim3.rootPackage=${slim3.rootPackage}</option>
            </options>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <id>copy-dependencies-for-apt</id>
            <configuration>
              <includeArtifactIds>slim3-gen,scenic3</includeArtifactIds>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-eclipse-plugin</artifactId>
        <configuration>
          <additionalConfig>
            <file>
              <name>.factorypath</name>
              <content>
                <![CDATA[
<factorypath>
  <factorypathentry kind="WKSPJAR" id="/${artifactId}/${eclipse.lib}/slim3-gen-${slim3.version}.jar" enabled="true" runInBatchMode="false"/>
  <factorypathentry kind="WKSPJAR" id="/${artifactId}/${eclipse.lib}/scenic3-${scenic3.version}.jar" enabled="true" runInBatchMode="false"/>
</factorypath>
               ]]>
              </content>
            </file>
            <file>
              <name>.settings/org.eclipse.jdt.apt.core.prefs</name>
              <content>
                <![CDATA[
eclipse.preferences.version=1
org.eclipse.jdt.apt.aptEnabled=true
org.eclipse.jdt.apt.genSrcDir=${generated.src}
org.eclipse.jdt.apt.reconcileEnabled=false
org.eclipse.jdt.apt.processorOptions/slim3.rootPackage=${slim3.rootPackage}
               ]]>
              </content>
            </file>
          </additionalConfig>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
ポイントはバージョン番号をプロパティに切り出していることと、Eclipse上でやっていたAPT設定をpomに書いたこと。これでmvn eclipse:eclipseした後にAPTだけ手動で設定しなおす必要がありませんw

もっとちゃんとしたpomの書き方があるかも(汗


2011/6/26追記
アーキタイプを作ってくれた人があらわれました。ヒャッホー!