Грузовой плагин maven с tomcat6
Я пытаюсь настроить грузовой плагин Maven. У меня есть следующие требования:
- кот 6
- custom server.xml
- пользовательский context.xml
- jar log4j развернут в библиотеке Tomcat
- установите tomcat на машину, если ее там еще нет
- привязка к этапу жизненного цикла установки maven для развертывания войны и перезапуска контейнера
- сделайте развернутую войну ROOT.war
Я следовал за следующим: http://www.java-tutorial.ch/maven/maven-tomcat-deployment-using-cargo. Это не полный набор функций, который я хочу, и даже он не работает полностью. Вот что я получаю:
Can't load log handler "4host-manager.org.apache.juli.FileHandler"
[INFO] [talledLocalContainer] java.lang.ClassNotFoundException: 4host-manager.org.apache.juli.FileHandler
И затем, когда mvn install возвращается, я делаю ps -ef, и процесс tomcat отсутствует.
Также он копирует войну в ROOT.war, но старый каталог ROOT/ не заменяется, поэтому новый ROOT.war фактически не развертывается.
Для требования "установить tomcat, если его еще нет" кажется, что это должно быть абсолютно просто, но когда я предоставляю
<zipUrlInstaller>
<url>http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.32/bin/apache-tomcat-6.0.32.zip</url>
<extractDir>/usr/local</extractDir>
</zipUrlInstaller>
и запустить mvn cargo: установить, он бросает это:
org.codehaus.cargo.container.ContainerException: Failed to get container installation home as the container has not yet been installed. Please call install() first.
Что удивительно. Он хочет, чтобы я сначала вызвал install, но я звоню install.
Идеи?
1 ответ
Ссылка, по которой вы следовали, дала демо для груза 1.0.6. Доступна последняя версия 1.1.1, поэтому я предлагаю вам использовать последние, и в дочерних тегах есть определенные изменения
Как описано в посте http://cargo.codehaus.org/Deploying+to+a+running+container. Есть определенные изменения в дочерних тегах ZipUrlInstaller.
<!--
Careful: As described in the ZipUrlInstaller documentation,
Cargo versions older than 1.1.0 accept only installDir, you therefore
need to set installDir instead of downloadDir and extractDir.
-->
Попробуйте использовать архетип maven для создания примера проекта груза, следуя посту http://cargo.codehaus.org/Maven2+Archetypes. Я предлагаю вам пользователю "Единый модуль Webapp Archetype"
После настройки проекта maven вы можете установить tomcat 6, запустив mvn cargo:install -P tomcat6x.
pom.xml фрагмент "единого архетипа модуля веб-приложения", который может быть полезен для вас.
<profiles>
<profile>
<id>tomcat6x</id>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<configuration>
<wait>true</wait>
<container>
<containerId>tomcat6x</containerId>
<!-- download zip url -->
<zipUrlInstaller>
<url>http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.32/bin/apache-tomcat-6.0.32.zip</url>
<downloadDir>${project.build.directory}/downloads</downloadDir>
<extractDir>${project.build.directory}/extracts</extractDir>
</zipUrlInstaller>
</container>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
</profiles>
где параметр ожидания true даст вам возможность проверить, работает сервер или нет.