読者です 読者をやめる 読者になる 読者になる

mavenで自動デプロイを実行する

mavenTomcatサーバーに自動でデプロイを行えるようにする設定のメモ。
mavenのバージョン:2.2.1
Tomcatのバージョン:7.0.6

まずはTomcatでmanagerの権限設定を行います。
CATALINA_HOME/conf/tomcat-user.xmlをエディタで開き、
ロールにmanager-gui、manager-scriptがなければ追加。
ブラウザ上からログインするユーザーにはロール「manager-gui
mavenで使用するユーザーにはロール「manager-script」を設定します。
私は今回「tomcat」ユーザーに両方のロールを設定しました。
CATALINA_HOME/conf/tomcat-user.xml

<tomcat-users>
  <role rolename="tomcat"/>
  <role rolename="role1"/>
<role rolename="manager-gui"/>
  <role rolename="manager-script"/>
  <role rolename="admin"/>
  <user username="tomcat" password="hogehoge" roles="tomcat,manager-gui,manager-script"/>
  <user username="both" password="xxx" roles="tomcat,role1"/>
  <user username="role1" password="xxx" roles="role1"/>
  <user username="admin" password="xxx" roles="admin"/>
</tomcat-users>

tomcat5.5の場合は「manager-gui」と「manager-script」の代わりに「manager」になります。

次はmavenの「pom.xml」にtomcat-maven-pluginの設定を追加します。
Tomcatサーバーのアドレスが「http://hogehoge:8080/」の場合、
urlは「http://hogehoge:8080/manager/text」になります。
tomcat 5.5の場合は「「http://hogehoge:8080/manager」」
pom.xml

<project>
  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>tomcat-maven-plugin</artifactId>
        <configuration>
          <server>tomcat</server>
          <url>http://hogehoge:8080/manager/text</url>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <repositories>
    <repository>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots />
      <id>Maven Snapshots</id>
      <url>http://snapshots.maven.codehaus.org/maven2/</url>
    </repository>
  </repositories>
  <pluginRepositories>
    <pluginRepository>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots />
      <id>Maven Snapshots</id>
      <url>http://snapshots.maven.codehaus.org/maven2/</url>
    </pluginRepository>
  </pluginRepositories>
</project>


続いて「M2_HOME/conf/settings.xml」にTomcatにアクセスするためのユーザー名、パスワードを設定します。
idの値は「plugin/configuration/server」の値と合わせてください。

settings.xml

<settings>
  <servers>
    <server>
      <id>tomcat</id>
      <username>tomcat</username>
      <password>hogehoge</password>
    </server>
  </servers>
</settings>

これで設定は完了です。
次のコマンドを実行すれば自動でデプロイしてくれるはずです。

mvn tomcat:deploy