#java #maven-3 #cargo #maven-cargo #cargo-maven2-plugin
#java #maven-3 #cargo #maven-cargo #cargo-maven2-plugin
Вопрос:
Я пытаюсь обновить свое существующее приложение maven для использования tomcat 7.10 и выше.
В версии 7.8 я использую cargo-maven2-plugin для запуска контейнера tomcat и развертывания веб-приложения, это работает нормально.
В версиях 7.10 и выше это приводит к ошибке:
[WARNING] [talledLocalContainer] 14/04/2011 12:21:43 PM org.apache.tomcat.util.digester.Digester startElement
[WARNING] [talledLocalContainer] SEVERE: Begin event threw exception
[WARNING] [talledLocalContainer] java.lang.ClassNotFoundException: org.apache.catalina.mbeans.ServerLifecycleListener
Это связано с тем, что эта библиотека была удалена из tomcat в версии 7.9, но версия cargo, которую я использую, все еще указывает эту библиотеку в своем server.xml конфигурация.
Ошибка была исправлена в cargo 1.1.0 ( http://jira.codehaus.org/browse/CARGO-923?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel )
Я пытаюсь выяснить, как принудительно установить версию cargo, которую должен использовать maven (или, более конкретно, cargo-maven2-plugin).
Соответствующая часть моего pom.xml выглядит так:
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.0.6</version>
<configuration>
<container>
<containerId>tomcat7x</containerId>
<zipUrlInstaller>
<url>http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.12/bin/apache-tomcat-7.0.12.zip</url>
<installDir>${user.home}/java/cargo/</installDir>
</zipUrlInstaller>
</container>
<configuration>
<properties>
<cargo.logging>low</cargo.logging>
<cargo.servlet.port>8280</cargo.servlet.port>
</properties>
</configuration>
</configuration>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>start</goal>
</goals>
</execution>
</executions>
</plugin>
Проблема в том, что при этом всегда будет использоваться cargo 1.6 через номер версии cargo-maven2-plugin. Если я проверю mvnrepository, это самая последняя версия, которая доступна (и сломана).
Если я попытаюсь указать core.cargo.version в разделе конфигурация-> свойства, похоже, это не имеет никакого значения.
Есть идеи?
Комментарии:
1. При дальнейшем поиске я могу «вроде» заставить это работать, используя приведенные здесь инструкции ( cargo.codehaus.org/Maven2 Plugin Installation ) но это не кажется отличным способом решить проблему, поскольку он использует ночные снимки, а не релизы.
2. Для дальнейшего обновления я заставил эту конфигурацию работать, используя приведенные выше инструкции. Единственное изменение, которое стоит отметить (для кого-либо еще с такой же проблемой), заключается в том, чтобы убедиться, что вы поместили блок «<wait> true</ wait>» внутри вашего блока «plugin-> configuration», чтобы он не отключал tomcat сразу после его запуска.
Ответ №1:
Я знаю, что этот запрос устарел, но ответ может быть полезен кому-то еще, кто его откроет.
Вы можете указать зависимости непосредственно в определении вашего плагина в pom.xml и тем самым переопределить версию зависимостей вашего плагина, как в следующем примере. Версия cargo-maven2-plugin
есть 1.4.10
, и я переопределяю версию некоторых зависимостей, чтобы использовать 1.4.11
вместо этого.
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.4.10</version>
<configuration>
<container>
<containerId>tomcat7x</containerId>
</container>
</configuration>
<executions>
<execution>
<id>run</id>
<goals>
<goal>start</goal>
</goals>
<phase>pre-integration-test</phase>
</execution>
<execution>
<id>finish</id>
<goals>
<goal>stop</goal>
</goals>
<phase>post-integration-test</phase>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-core-api-generic</artifactId>
<version>1.4.11</version>
</dependency>
<dependency>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-documentation</artifactId>
<version>1.4.11</version>
</dependency>
<dependency>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-daemon-client</artifactId>
<version>1.4.11</version>
</dependency>
<dependency>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-core-api-container</artifactId>
<type>test-jar</type>
<version>1.4.11</version>
</dependency>
</dependencies>
</plugin>