Maven and Cargo: запустите Jetty-Container с помощью war-File
Я только начал новый проект Maven, который предназначен для запуска Jetty, содержащего War-File из зависимого проекта. Cargo-плагин должен быть правильным инструментом для этого.
К сожалению, это не работает для меня. Он успешно запускает Jetty, но содержит только файл default-cargo-war, а не ожидаемый.
Это актуальная часть моего военного дела:
<dependencies>
<dependency>
<groupId>com.group</groupId>
<artifactId>my-webapp</artifactId>
<version>0.1.0-SNAPSHOT</version>
<type>war</type>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.0.5</version>
<configuration>
<container>
<containerId>jetty7x</containerId>
<type>embedded</type>
</container>
<configuration>
<properties>
<cargo.servlet.port>7070</cargo.servlet.port>
<cargo.logging>high</cargo.logging>
</properties>
</configuration>
<deployer>
<type>embedded</type>
<deployables>
<deployable>
<groupId>com.group</groupId>
<type>war</type>
<artifactId>my-webapp</artifactId>
<properties>
<context>/path</context>
</properties>
</deployable>
</deployables>
</deployer>
</configuration>
</plugin>
</plugins>
</build>
Я использую плагин, запустив mvn cargo:start.
Нет журнала ошибок.
[INFO] [cargo:start]
[INFO] [beddedLocalContainer] Jetty 7.x Embedded starting...
2011-01-17 18:57:44.586:INFO::jetty-7.2.0.v20101020
2011-01-17 18:57:44.663:INFO::Extract jar:file:/tmp/cargo/conf/cargocpc.war!/ to /tmp/jetty-0.0.0.0-7070-cargocpc.war-_cargocpc-any-/webapp
2011-01-17 18:57:45.082:INFO::Started SelectChannelConnector@0.0.0.0:7070
[INFO] [beddedLocalContainer] Jetty 7.x Embedded started on port [7070]
Как я могу сказать Cargo, чтобы загрузить указанный файл войны?
4 ответа
Хорошо, я получил его на работу сейчас.
Кажется, что карго молча игнорирует любые зависимости снимка. Поэтому вы должны выпустить проект, прежде чем использовать его в грузовом проекте.
Вероятно, это ошибка. Я не могу представить какой-либо разумной причины для такого поведения.
(также файл pom, который я разместил выше, был неправильным, вы должны адаптировать изменения, которые Робин предлагает в своем ответе)
Попробуй это. Установите тип конфигурации как автономный и поместите развертываемые файлы в конфигурацию. Убедитесь, что существует правильная зависимость проекта для разрешения войны.
<configuration>
<type>standalone</type>
<properties>
<cargo.servlet.port>7070</cargo.servlet.port>
<cargo.logging>high</cargo.logging>
</properties>
<deployables>
<deployable>
<groupId>com.group</groupId>
<type>war</type>
<artifactId>my-webapp</artifactId>
<properties>
<context>/path</context>
</properties>
</deployable>
</deployables>
</configuration>
Кажется, это может работать лучше, если вы сначала выполните развертывание, скажем, запустите команду "mvn cargo:deploy", а затем выполните "mvn cargo:start"
Если вы просто хотите развернуть на встроенной Jetty, вам может не понадобиться Cargo. Просто используйте это в pom.xml вашего веб-приложения:
<build>
...
...
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>7.2.2.v20101205</version>
<configuration>
<scanIntervalSeconds>10</scanIntervalSeconds>
<webAppConfig>
<contextPath>/path</contextPath>
</webAppConfig>
<connectors>
<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
<port>7070</port>
<maxIdleTime>60000</maxIdleTime>
</connector>
</connectors>
</configuration>
</plugin>
...
...
</plugins>
...
...
</build>
построить и запустить пользователя Jetty
mvn clean install jetty:run