Подтвердить что ты не робот

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>
4b9b3361

Ответ 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>