Пост, в основном, для себя (памятка), но в public, ибо мало ли кому еще пригодится.
Итак, если в jetty6-контейнере trails из maven2 запустить очень легко, то с deploy'ем в томкат мне пришлось помучацца (я мучался 2 дня).
Далее инструкция, как заставить его работать в томкате:
1. Итак, мы сделали Trails-проект следующей командой:
pstation% mvn archetype:create -DarchetypeGroupId=org.trailsframework -DarchetypeArtifactId=trails-archetype -DremoteRepositories=
http://snapshots.repository.codehaus.org/ -DarchetypeVersion=1.0-SNAPSHOT -DgroupId=org.mytrails -DartifactId=mytrails
Здесь org.mytrails -- наш пакадж, а mytrails -- наш проект.
2. Положим, томкат крутится на машине metal, по адресу
http://metal:8180. Чтобы деплоить туда проекты, нужно сначала сделать пользователя для него, входящего в группу "manager". Добавим в томкатовский conf/tomcat-users.xml строчку:
И рестартнем томкат. У меня на freebsd это делается как # sudo /usr/local/etc/rc.d/tomcat55.sh restart.
Еще момент такой: у меня в стандартной инсталляции директория webapps томката, почему-то, имело владельцев root/wheel, хотя томкат стартуется как www/www. Поэтому мне пришлось поменять владельцев, чтобы проекты можно было деплоить через веб:
# sudo chown -R www:www webapps
3. Теперь надо научить maven деплоить проект в томкат. Для этого есть tomcat-maven-plugin. Запишем его в pom.xml в соответсвующую секцию как плагин:
org.codehaus.mojogroupId>
tomcat-maven-pluginartifactId>
1.0-SNAPSHOTversion>
http://metal:8180/managerurl>
metalserver>
configuration>
plugin>
http://metal:8180/manager -- это адрес менеджера проектов для нашего томката. Наш менеджер будет требует логина и пароля для аутентификации, поэтому указываем id сервера: metal, чтобы впоследствии настроить для него аккаунт в ~/.m2/settings.xml.
Также укажем репозиторий, где искать наш плагин:
Maven Snapshotsid>
http://snapshots.maven.codehaus.org/maven2/url>
trueenabled>
snapshots>
falseenabled>
releases>
pluginRepository>
Теперь нужно добавить соответствующие настройки для аутентификации в ~/.m2/settings.xml
metalid>
mvnusername>
mvn_manageR_password>
server>
servers>
settings>
4. Итак, все настройки закончены, теперь можно управлять деплоем так:
pstation% mvn tomcat:deploy
pstation% mvn tomcat:redeploy
pstation% mvn tomcat:undeploy
5. Остался единственный баг, который надо побороть. Почему-то в war запаковывается pull-parser второй версии, из-за которого попытка открыть наш проект в браузере выдаст исключение:
Unable to read context:/WEB-INF/mytrails.application: validation is not supported
Лечится это достаточно просто: надо поудалять отовсюду WEB-INF/lib/pull-parser-2.jar, без него все должно заработать как надо.