Maven3 で war ファイルを Tomcat7 にデプロイする。
スポンサーリンク
事前条件は上と一緒。
war ファイルのビルド以上にハマったのが、Tomcat7 へのデプロイ。
最終的に上手くいった時の設定は以下の通り。
pom.xml
…
…
…
org.apache.tomcat.maven
tomcat7-maven-plugin
2.0-SNAPSHOT
tomcat7
http://localhost:8080/manager/text
/MyApp
${project.build.directory}/${project.artifactId}-${project.version}.war
true
…
…
…
Snapshots
Apache Snapshots
http://people.apache.org/repo/m2-snapshot-repository/
true
false
Apache Snapshots
http://people.apache.org/repo/m2-snapshot-repository/
true
false
…
settings.xml
…
tomcat7 user123 456
…
…
…
以下、要点だけ。
- plugin
- pluginRepository
- id … 任意。
- url … プラグインが格納されている場所なら何処でも良いと思う。
- snapshots
- enabled … true
- releases
- enabled … false
- server
- tomcat-users
- role rolename … manager-script
- user … Maven から Tomcat にアクセスするためのユーザーを定義する。ロールは"manager-script"にする。この場合、tomcat7-maven-plugin の configuration の url は http://localhost:8080/manager/text となる。
以上の3つのファイルの定義が正しければ、"mvn tomcat7:deploy"を実行した時、war ファイルがデプロイされて、ページにアクセスできるようになる。
参考資料:
- Apache Tomcat Maven Plugin - About Apache Tomcat Maven Plugin
- java - Maven is failing to download the tomcat-maven-plugin snapshot - Stack Overflow
- eclipse - How to add repository for tomcat maven plugin - Stack Overflow
- Maven 2 で Tomcat 7 にデプロイする - エンジニアきまぐれTips
- Deploying project, created with Eclipse and Maven, to Tomcat - Stack Overflow
- tomcat 7 maven plugin snapshot repository issue? - Stack Overflow
- mavenで自動デプロイを実行する - 壷ラボ
- Apache Tomcat 7 (7.0.64) - Manager App HOW-TO
今回、ハマった原因の一つは、参考にした資料で使われている Tomcat 本体およびプラグインのバージョンアップに伴い、従来のやり方が一部通用しなくなっている事だった。
Tomcat プラグインの開発主体が、バージョン 2.x 以降は Apache に移ったようだが、groupId も変更になったりして、だいぶ混乱させられた。
しかも、2.x 系の方は公式ドキュメントが殆ど見当たらないので、正解に辿り着くまでに時間がかかった。
いやー、参った。。