DoltengとMaven2とSubversionの連携(4)

(時間経過に伴い、現在は以下の手順等が変更・洗練されています。最新の情報はサポートwikiにてご確認下さい。)

以下のエントリー、ガンガン編集しています。一度読まれた方も、宜しければもう一度ご覧下さい。

編集pom.xml

Doltengで自動生成されたpom.xmlは、以下のように編集します。これにより以下の事を行っています。

  • source&target(出力)フォルダの整備
  • Seasar系のバージョンアップ
    • s2-frameworkをv2.4.12に
    • teedaをv1.0.6に
    • s2-daoをv1.0.42に
  • 開発インフラに対応
  • Flex Data Service対応*2
<?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"
>
  <modelVersion>4.0.0</modelVersion>
  <groupId>jp.xet.cepoc</groupId>
  <artifactId>cepoc</artifactId>
  <packaging>war</packaging>
  <name>Cepoc</name>
  <version>0.0.1</version>
  <issueManagement>
    <system>Trac</system>
    <url>http://develop/trac/cepoc/</url>
  </issueManagement>
  <ciManagement>
    <system>continuum</system>
    <url>http://develop:8080/continuum/</url>
    <notifiers>
      <notifier>
        <type>mail</type>
        <configuration>
          <!-- continuumによってビルド結果が通知されるアドレスを指定 -->
          <address>hoge@example.com</address>
        </configuration>
      </notifier>
    </notifiers>
  </ciManagement>
  <scm>
    <connection>scm:svn:http://develop/svn/cepoc/trunk/cepoc/</connection>
    <developerConnection>http://develop/svn/cepoc/trunk/cepoc/</developerConnection>
    <url>http://develop/svn/cepoc/trunk/cepoc/</url>
  </scm>
  <build>
    <outputDirectory>src/main/webapp/WEB-INF/classes</outputDirectory>
    <defaultGoal>validate</defaultGoal>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
      <resource>
        <directory>src/main/webapp/view</directory>
      </resource>
      <resource>
        <directory>work</directory>
      </resource>
    </resources>
    <testResources>
      <testResource>
        <directory>src/test/resources</directory>
      </testResource>
    </testResources>
    <finalName>cepoc</finalName>
    <pluginManagement>
      <plugins>
        <plugin>
          <artifactId>maven-eclipse-plugin</artifactId>
          <configuration>
            <wtpversion>1.5</wtpversion>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.5</source>
          <target>1.5</target>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-source-plugin</artifactId>
        <executions>
          <execution>
            <id>source-jar</id>
            <phase>package</phase>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.seasar.container</groupId>
        <artifactId>diigu-maven-plugin</artifactId>
        <version>1.0.0</version>
        <executions>
          <execution>
            <goals>
              <goal>enhance</goal>
              <!-- テストコードがない場合はtestEnhanceを外すこと -->
              <goal>testEnhance</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <verbose>true</verbose>
          <encoding>UTF-8</encoding>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>tomcat-maven-plugin</artifactId>
        <version>1.0-SNAPSHOT</version>
        <configuration>
          <server>tomcat</server>
          <url>http://www:8080/manager</url>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <repositories>
    <repository>
      <id>local</id>
      <name>Local Repository</name>
      <url>file:repo</url>
    </repository>
    <repository>
      <id>cvs.apache.org</id>
      <name>cvs.apache.org</name>
      <url>http://cvs.apache.org/repository/</url>
    </repository>
    <repository>
      <id>maven.seasar.org</id>
      <name>The Seasar Foundation Maven2 Repository</name>
      <url>http://maven.seasar.org/maven2</url>
    </repository>
    <repository>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots />
      <id>Maven Snapshots</id>
      <url>http://snapshots.maven.codehaus.org/maven2/</url>
    </repository>
  </repositories>
  <pluginRepositories>
    <pluginRepository>
      <id>maven.seasar.org</id>
      <name>The Seasar Foundation Maven2 Repository</name>
      <url>http://maven.seasar.org/maven2</url>
    </pluginRepository>
    <pluginRepository>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots />
      <id>Maven Snapshots</id>
      <url>http://snapshots.maven.codehaus.org/maven2/</url>
    </pluginRepository>
  </pluginRepositories>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.2</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>junit-addons</groupId>
      <artifactId>junit-addons</artifactId>
      <version>1.4</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.13</version>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jsp_2.0_spec</artifactId>
      <version>1.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-servlet_2.4_spec</artifactId>
      <version>1.0</version>
    </dependency>
    
    <!--
      以下のgeronimoの要否は、Tomcatにおいてs2-framework, s2-extension, s2-tigarを使用する場合を前提。
      詳細は http://s2container.seasar.org/ja/setup.html にて。
    -->
    <!--S2JTA,S2Txを使う場合必要 -->
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jta_1.1_spec</artifactId>
      <version>1.0</version>
    </dependency>
    
    <!-- S2Tigerを使う場合必要 -->
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-ejb_2.1_spec</artifactId>
      <version>1.0</version>
    </dependency>

    <!-- Tomcat5.5の場合必要、6では不要 -->
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-annotation_1.0_spec</artifactId>
      <version>1.0</version>
    </dependency>
    
    <!-- Tomcatの場合必要 -->
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-ejb_3.0_spec</artifactId>
      <version>1.0</version>
    </dependency>

    <!-- EJB3を使う場合必要
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-interceptor_3.0_spec</artifactId>
      <version>1.0</version>
    </dependency>
    -->

    <!-- Tomcat5.5では必要、Tomcat6でJPAを使う場合必要 -->
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jpa_3.0_spec</artifactId>
      <version>1.0</version>
    </dependency>

    <!-- 以下3つは、Flex Data Serviceを使用しない場合は不要 -->
    <dependency>
      <groupId>commons-collections</groupId>
      <artifactId>commons-collections</artifactId>
      <version>3.1</version>
    </dependency>
    <dependency>
      <groupId>commons-codec</groupId>
      <artifactId>commons-codec</artifactId>
      <version>20041127.091804</version>
    </dependency>
    <dependency>
      <groupId>commons-httpclient</groupId>
      <artifactId>commons-httpclient</artifactId>
      <version>20020423</version>
    </dependency>

    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>1.1</version>
    </dependency>
    <dependency>
      <groupId>concurrent</groupId>
      <artifactId>concurrent</artifactId>
      <version>1.3.4</version>
    </dependency>
    <dependency>
      <groupId>org.seasar.container</groupId>
      <artifactId>s2-extension</artifactId>
      <version>2.4.12</version>
    </dependency>
    <dependency>
      <groupId>org.seasar.container</groupId>
      <artifactId>s2-framework</artifactId>
      <version>2.4.12</version>
    </dependency>
    <dependency>
      <groupId>org.seasar.container</groupId>
      <artifactId>s2-tiger</artifactId>
      <version>2.4.12</version>
    </dependency>
    <dependency>
      <groupId>org.seasar.container</groupId>
      <artifactId>diigu-core</artifactId>
      <version>1.0.0</version>
    </dependency>
    <dependency>
      <groupId>org.seasar.teeda</groupId>
      <artifactId>teeda-extension</artifactId>
      <version>1.0.6</version>
    </dependency>
    <dependency>
      <groupId>org.seasar.teeda</groupId>
      <artifactId>teeda-ajax</artifactId>
      <version>1.0.6</version>
    </dependency>
    <dependency>
      <groupId>org.seasar.teeda</groupId>
      <artifactId>teeda-tiger</artifactId>
      <version>1.0.6</version>
    </dependency>
    <dependency>
      <groupId>org.seasar.teeda</groupId>
      <artifactId>teeda-xmlunit</artifactId>
      <version>0.1.0</version>
    </dependency>
    <dependency>
      <groupId>org.seasar.dao</groupId>
      <artifactId>s2-dao</artifactId>
      <version>1.0.42</version>
    </dependency>
    <dependency>
      <groupId>org.seasar.dao</groupId>
      <artifactId>s2-dao-tiger</artifactId>
      <version>1.0.42</version>
    </dependency>
    <dependency>
      <groupId>org.seasar.flex2</groupId>
      <artifactId>s2-flex2</artifactId>
      <version>1.0.1</version>
    </dependency>
    <dependency>
      <groupId>com.h2database</groupId>
      <artifactId>h2</artifactId>
      <version>1.0.20061217</version>
    </dependency>
  </dependencies>
</project>

*1:settings.xmlの設定が必要。詳細は後日。

*2:使わないのであれば、dependencyのcommons-codec, commons-httpclient, concurrentは不要。