Maven jetty - org.mortbay.jetty vs org.eclipse.jetty
Я пытаюсь использовать причал для размещения простого сервлета helloworld с помощью maven. Я очень смущен.
Я следил за этими инструкциями, но когда я выдаю mvn jetty:run
, я получаю следующую ошибку:
[ERROR] No plugin found for prefix 'jetty' in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories [local (/Users/abc/.m2/repository), central (http://repo.maven.apache.org/maven2)]
Чтобы добавить к путанице, когда я ищу в Интернете примеры, некоторые ссылаются на org.mortbay.jetty
, а другие - на org.eclipse.jetty
. Я думал, что версия Eclipse является самой последней, нет?
Есть ли какая-либо документация, описывающая, что означает каждая из зависимостей, размещенных на maven repo? И как их можно использовать?
После изменения номера версии до 9.0.0.v20130308
, я получаю другую ошибку:
Unable to load the mojo 'run' in the plugin 'org.eclipse.jetty:jetty-maven-plugin:9.0.0.v20130308' due to an API incompatibility: org.codehaus.plexus.component.repository.exception.ComponentLookupException: org/eclipse/jetty/maven/plugin/JettyRunMojo : Unsupported major.minor version 51.0
Вот мой обновленный pom:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.neon.research</groupId>
<artifactId>jetty</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>jetty Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<jetty.version></jetty.version>
</properties>
<dependencies>
<dependency>
<groupId>org.eclipse.jetty.orbit</groupId>
<artifactId>javax.servlet</artifactId>
<version>3.0.0.v201112011016</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.0.0.v20130308</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>jsr14</target>
</configuration>
<executions>
<execution>
<id>test-compile</id>
<phase>process-test-sources</phase>
<goals>
<goal>testCompile</goal>
</goals>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Ответы
Ответ 1
Jetty переместился много - см. History. Eclipse - это самый последний дом с 2009 года. Артефакты Maven были переименованы на этом пути, поэтому ваши поиски находят документацию для более старых версий Jetty и плагина maven.
В последней версии (v9) документации на причал-maven-plugin указан зависимость как:
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.0.0.v20130308</version> <!-- latest at time of writing -->
</plugin>
Другие библиотеки, такие как jetty-continuation или jetty-jsp, являются только подмодулями Jetty Project. В документах old wiki существует некоторая документация для Jetty 7 и 8, но я пока ничего не вижу для v9. Модульный дизайн - это организация разработчиков Jetty своего кода в четко определенные модули, которые были доступны отдельно для разработчиков, которые могут захотеть использовать только небольшую часть Jetty.
Ответ 2
Версия eclipse является более новой. Следуйте инструкциям на своем сайте.
Ответ 3
Вот рабочая конфигурация для меня.
Использует последнюю версию Jetty.
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.4.0.v20161208</version>
<configuration>
<scanIntervalSeconds>0</scanIntervalSeconds>
<contextXml>${basedir}/src/it/resources/jetty-context.xml</contextXml>
<webApp>
<contextPath>/yourContextPath</contextPath>
</webApp>
<contextHandlers>
<contextHandler implementation="org.eclipse.jetty.webapp.WebAppContext">
<war>your/path.war</war>
<contextPath>/yourPath</contextPath>
</contextHandler>
</contextHandlers>
<classesDirectory></classesDirectory>
<webAppSourceDirectory></webAppSourceDirectory>
</configuration>
</plugin>