mavenでwarファイルへのパッケージ&Tomcatサーバーへリモートアクセスデプロイ

Maven2ではプロファイルでCargo - Maven2 pluginを使うことによって、デプロイしてその後にサーバーへリモートデプロイすることができます。

これによって、テストサーバー等へのデプロイの手間やミスも減り効率がすごくよくなりますので、プロジェクト初期には設定しておきたいところ。

pom.xmlへの記述
<profiles>
  <!-- コマンドプロンプトから次のコマンドを実行したときのプロファイル "mvn package -P test-release" -->
  <profile>
    <id>test-release</id>
    <activation>
      <!-- デフォルトプロファイル: true -->
      <activeByDefault>false</activeByDefault>
    </activation>
    <properties>
      <maven.test.skip>false</maven.test.skip>
    </properties>
    <build>
      <finalName>ExampleApp</finalName>
      <resources>
        <resource>
          <filtering>true</filtering>
          <directory>src/test-release/resources</directory>
        </resource>
        <resource>
          <filtering>false</filtering>
          <directory>src/main/resources</directory>
        </resource>
      </resources>
      <plugins>  
            <plugin>  
              <groupId>org.codehaus.cargo</groupId>  
              <artifactId>cargo-maven2-plugin</artifactId>  
              <configuration>  
                <configuration>  
                  <properties>  
             <cargo.tomcat.manager.url>http://192.168.0.138:8080/manager</cargo.tomcat.manager.url>
            <cargo.remote.username>admin</cargo.remote.username>
            <cargo.remote.password>admin</cargo.remote.password>
                  </properties>  
                  <type>runtime</type>  
                </configuration>  
                <container>  
                  <containerId>tomcat6x</containerId>  
                  <type>remote</type>  
                </container>  
                <deployer>  
                  <deployables>  
                    <deployable>  
                      <groupId>example.com</groupId>  
                      <artifactId>example</artifactId>  
                      <type>war</type>  
                      <properties>  
                        <context>ExampleApp</context>  
                      </properties>  
                    </deployable>  
                  </deployables>  
                </deployer>  
              </configuration>  
              <executions>  
                <!-- すでにアプリケーションが存在する場合はエラーになるのでundeployする -->  
                <execution>  
                  <id>test-undeploy</id>  
                  <phase>package</phase>  
                  <goals>  
                    <goal>undeploy</goal>  
                  </goals>  
                </execution>  
                <execution>  
                  <id>test-deploy</id>  
                  <phase>package</phase>  
                  <goals>  
                    <goal>deploy</goal>  
                  </goals>  
                </execution>  
              </executions>  
            </plugin>  
          </plugins>  
    </build>
  </profile>
<profiles>
実行

実際に実行するには、次のコマンドをコマンドプロンプトから実行します。

mvn package -P test-release