2014年8月30日土曜日

mavenによるtomcat7へのWarファイルのデプロイの流れ

tomcat7にWarファイルをデプロイしたときの作業の流れ。
当然ですが、mavenと、tomcatは予め準備しておきます。

今回は、eclipseのm2eというプラグインを利用して実行しました。

まず、tomcatサーバ側の準備。
Warファイルのデプロイのためには、デプロイの権限が必要となります。
tomcatの"tomact-users.xml"というファイルに以下を追加します。
<tomact-users>
  <role rolename="manager-gui" />
  <role rolename="manager-script" />
  <user  username="tomcat" password="password" roles="manager-gui,managerscript" />
</tomact-users>
※ tomcat-usersが存在している場合は記載する必要はありません。

    username, passwordは環境に合わせて変更してください。

上記の設定を行った上で、Tomcatを起動、もしくは再起動する。


次は、デプロイ側の設定。デプロイするサーバや、パスの設定をします。

pom.xml
<biuld>
  <plugins>
    <plugin>
      <groupId>org.apache.tomcat.maven</groupId>
      <artifactId>tomcat7-maven-plugin</artifactId>
      <version>2.2</version>
      <configuration>
        <url>http://localhost:8080/manager/text</url>
        <server<remotetomcat</server>
        <path>/hello</path>
      </configuration>
    </plugin>
  </plugins>
</biuld>

settings.xml
<?xml version="1.0" encoding="UTF-8"?>
<settings>
  <servers>
    <server>
      <id>remotetomcat</id>
      <username>hiroyuki</username>
      <password>hiroyuki</password>
    </server>
  </servers>
</settings>




あとは、m2eのプラグインから tomcat7:deploy を実行するとデプロイができます。
※2回目以降は、tomact7:redeployでないと失敗します。
 deployは上書き禁止モードのようです。

意外と簡単だった。でも、このデプロイはセキュリティ的にはどうなんだろうか。外部からモジュール置き換えができるのは便利だけどテスト環境だけに留めたい・・・。

参考にしたサイト
http://blog.horimisli.me/entry/2012/07/13/231000