maven tomcat


maven cactusは、自動的にApplication Server(Tomcat, etc.)を起動して、コンテナTestを実行し、Applocation Serverを終了させる。

Unit Test、コンテナTestの自動Testには便利だが、Applicationをブラウザで確認したい場合もある。

その時は、maven-tomcat-pluginが便利。ただし、これは、3rd Party Pluginであるため、別途入手が必要。

1) Application Server(Tomcat)の設定、起動

${TOMCAT_HOME}/conf/tomcat-user.xml

 <?xml version='1.0' encoding='utf-8'?>
 <tomcat-users>
   <role rolename="tomcat"/>
   <role rolename="role1"/>
   <role rolename="manager"/> <-- ここ
   <user username="tomcat" password="tomcat" roles="tomcat"/>
   <user username="role1" password="tomcat" roles="role1"/>
   <user username="both" password="tomcat" roles="tomcat,role1"/>
   <user username="manager" password="manager" roles="manager"/> <-- ここ
 </tomcat-users> 

2) 開発環境の設定

${HOME}/build.properties

 maven.repo.remote= \
       http://www.ibiblio.org/maven/, \
       http://www.codeczar.com/maven/ ← ここ
projext.xml

 <dependencies>
   ...
   <dependency>
     <groupId>codeczar-tomcat</groupId>
     <artifactId>maven-tomcat-plugin</artifactId>
     <version>1.1</version>
     <type>plugin</type>
   </dependency>
 </dependencies>
project.properties
 maven.tomcat.precompile = false
 maven.tomcat.webapp.dir = ${maven.war.webapp.dir} 

3) Application Server(Tomcat)へのInstall

$ maven tomcat:install

   [echo] /web
build:start:

tomcat:jspc:
   [echo] maven.tomcat.precompile = 'false' skipping pre-compile Tag library requested that is not present: 'maven' in plugin: 'maven-xdoclet-plugin-1.2'

war:init:

war:war-resources:

java:prepare-filesystem:

java:compile:
xdoclet:webdoclet:

   [echo] Compiling to /home/miyachi/Projects/Examples/ex04/target/classes

java:jar-resources:

test:prepare-filesystem:

test:test-resources:

test:compile:

test:test:
   [junit] Running example.web.SanityTest
   [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.022 sec

war:webapp:
    [echo] Assembling webapp web

tomcat:mergexml:

tomcat:install:
   [echo] /web
   [install] OK - Deployed application at context path /web
   [install]
BUILD SUCCESSFUL
Total time: 5 seconds
Finished at: Mon Oct 03 14:21:22 JST 2005

$

4) Application Serverへのアクセス

http://localhost:8080/web/で確認してみよう!。