mavenプロジェクトをeclipse上で作成しそのままtomcat上にデプロイする方法を紹介します
■環境
Windows7(64bit)
maven3.0.4(eclipse組み込み版)
eclipse3.7(m2eclipse, mongrel)
Java1.7.0_17
Tomcat7.0.42
maven3.0.4(eclipse組み込み版)
eclipse3.7(m2eclipse, mongrel)
Java1.7.0_17
Tomcat7.0.42
■プロジェクト作成
Mavenプロジェクトを作成します
プロジェクトエクスプローラから新規→その他→Mavenプロジェクトを選択します
eclipseでMavenプロジェクトを作成するためには「m2eclipse」プラグインをインストールする必要がありますのでインストールしていない場合はEclipseマーケットプレイスからインストールしてください
作成時のポイントとしてはアーティファクトId「maven-archetype-webapp」を選択してください
グループIDにはプロジェクトを作成する組織名をアーティファクトIDには実際に作成される成果物名を記載します
またそのままパッケージ名にも使われるので例えば
グループID「com.kakakikikeke.sample」アーティファクトID「maven.tomcat」とするとパッケージ名は「com.kakakikikeke.sample.maven.tomcat」となります
それ以外は次へを押していけば大丈夫です
これでプロジェクトの作成は完了です
プロジェクトエクスプローラから新規→その他→Mavenプロジェクトを選択します
eclipseでMavenプロジェクトを作成するためには「m2eclipse」プラグインをインストールする必要がありますのでインストールしていない場合はEclipseマーケットプレイスからインストールしてください
作成時のポイントとしてはアーティファクトId「maven-archetype-webapp」を選択してください
グループIDにはプロジェクトを作成する組織名をアーティファクトIDには実際に作成される成果物名を記載します
またそのままパッケージ名にも使われるので例えば
グループID「com.kakakikikeke.sample」アーティファクトID「maven.tomcat」とするとパッケージ名は「com.kakakikikeke.sample.maven.tomcat」となります
それ以外は次へを押していけば大丈夫です
これでプロジェクトの作成は完了です
■プロジェクトの設定
プロジェクトを右クリックしビルドパスの構成からJavaのバージョンを変更します
デフォルトではJ2EEの1.5になっているためJava1.7.0_17に変更します
Javaは自分でインストールする必要がありますのでインストール後、eclipseにも追加してください
また右クリック→プロパティ→プロジェクト・ファセットでのJavaのバージョンを1.7に変更します
デフォルトではJ2EEの1.5になっているためJava1.7.0_17に変更します
Javaは自分でインストールする必要がありますのでインストール後、eclipseにも追加してください
また右クリック→プロパティ→プロジェクト・ファセットでのJavaのバージョンを1.7に変更します
■pom.xml編集
以下をprojectタブの直下に記載します
pom.xmlはプロジェクトの直下に作成されています
とりあえずここは記載するだけでOKです
pom.xmlはプロジェクトの直下に作成されています
<build> <finalName>test</finalName> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.1</version> <configuration> <server>localtomcat</server> <port>8080</port> <path>/test</path> </configuration> </plugin> </plugins> </build>projectタグの直下(dependenciesタグと同階層)の箇所に記載します
とりあえずここは記載するだけでOKです
■tomcat-users.xml編集
記載したらtomcatを起動します
tomcatの起動はeclipseからでなくても問題ありません
(念のため起動しているかどうかhttp://localhost:8080/などにアクセスしてみてください)
また今回は/manager/textというパスにアクセスできる必要があります
このパスはmanager-scriptというロールに該当するユーザが存在する必要があります(manager-guiではありません)
conf/tomcat-users.xmlに以下を記載してください
/managerにもアクセスさせたい場合には以下のようにします
インストール時にも設定することができますが、忘れた場合は直接conf/tomcat-users.xmlを編集してしまいましょう
編集してtomcatを再起動してください
http://localhost:8080/manager/text
にアクセスして設定したパスワードでログインできるか確認します
tomcatの起動はeclipseからでなくても問題ありません
(念のため起動しているかどうかhttp://localhost:8080/などにアクセスしてみてください)
また今回は/manager/textというパスにアクセスできる必要があります
このパスはmanager-scriptというロールに該当するユーザが存在する必要があります(manager-guiではありません)
conf/tomcat-users.xmlに以下を記載してください
<tomcat-users> <user name="tomcat" password="s3cret" roles="manager-script" />
/managerにもアクセスさせたい場合には以下のようにします
<user name="tomcat" password="s3cret" roles="manager-gui,manager-script" />
インストール時にも設定することができますが、忘れた場合は直接conf/tomcat-users.xmlを編集してしまいましょう
編集してtomcatを再起動してください
http://localhost:8080/manager/text
にアクセスして設定したパスワードでログインできるか確認します
■settings.xmlの編集
/manager/text用のユーザ名とパスワードをmavenに認識させるためにmavenの設定ファイルであるsettings.xmlに記載します
ファイルは~/.m2/settings.xmlにあると思います
なければ作成して以下を記載します
※既存のファイルがあればserversタグ以下の情報をコピペしてください
ファイルは~/.m2/settings.xmlにあると思います
なければ作成して以下を記載します
※既存のファイルがあればserversタグ以下の情報をコピペしてください
<?xml version="1.0" encoding="UTF-8"?> <settings> <servers> <server> <id>localtomcat</id> <username>tomcat</username> <password>s3cret</password> </server> </servers> </settings>
■デプロイ
プロジェクトを右クリックし実行→実行の構成からMavenビルド用の起動設定をします
右クリック新規で起動設定を作成し名前を入力します
基底ディレクトーはワークスペースの参照から作成したプロジェクトを参照します
そして、ゴールの欄に以下を記載します
tomcat7:deploy
これがポイントでtomcat:deployでも実行できるのですが、tomcat:deployだと/manager配下にリクエストするためにエラーとなります
おそらくtomcat7から/manager/textにアクセスしないとダメなようになったっぽいので、ちゃんとtomcat7:deployと明示してあげます
あとは特に設定するところはありません(JRE等も選択できますが、デフォルトはワークスペースに設定されているJREが適用になります)
設定が完了したら実行します
以下のようなログが出れば完了です
(maven-archetype-webapp のデフォルトのままだとHello Worldが表示されるだけだと思います)
というわけで以上となります。
今回苦戦したポイントは
まだ、日本語の情報が少ないのも意外とmavenに取っつきにく原因の一つかもしれません
右クリック新規で起動設定を作成し名前を入力します
基底ディレクトーはワークスペースの参照から作成したプロジェクトを参照します
そして、ゴールの欄に以下を記載します
tomcat7:deploy
これがポイントでtomcat:deployでも実行できるのですが、tomcat:deployだと/manager配下にリクエストするためにエラーとなります
おそらくtomcat7から/manager/textにアクセスしないとダメなようになったっぽいので、ちゃんとtomcat7:deployと明示してあげます
あとは特に設定するところはありません(JRE等も選択できますが、デフォルトはワークスペースに設定されているJREが適用になります)
設定が完了したら実行します
以下のようなログが出れば完了です
[INFO] tomcatManager status code:200, ReasonPhrase:OK [INFO] OK - コンテキストパス /test でアプリケーションを配備しました [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2.765s [INFO] Finished at: Wed Jul 31 15:30:22 JST 2013 [INFO] Final Memory: 13M/221M [INFO] ------------------------------------------------------------------------http://localhost:8080/test にアクセスしてデプロイされていることを確認します
(maven-archetype-webapp のデフォルトのままだとHello Worldが表示されるだけだと思います)
というわけで以上となります。
今回苦戦したポイントは
- Tomcat7用のmaven-tomcat-pluginの記載が必要だった
- Tomcatが起動していないといけない
- tomcat7:deployをゴールに設定しないといけない
- コンソールが文字化けしたのでeclipse.iniに-Dfile.encoding=utf-8を追加した(余談)
まだ、日本語の情報が少ないのも意外とmavenに取っつきにく原因の一つかもしれません
■参考サイト
0 件のコメント:
コメントを投稿