mavenで自動デプロイを実行する
mavenでTomcatサーバーに自動でデプロイを行えるようにする設定のメモ。
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