maven jetty - org.mortbay.jetty vs org.eclipse.jetty

hba picture hba · Mar 13, 2013 · Viewed 29.1k times · Source

I'm trying to use jetty to host a simple helloworld servlet using maven. I'm very confused.

I followed these instructions, but when I issue mvn jetty:run, I get the following error:

[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)]

To add to the confusion, when I search the web for examples, some are referring to org.mortbay.jetty, and others to org.eclipse.jetty. I thought that the Eclipse version is the most recent, no?

Is there any documentation that describes what each of the dependencies hosted on maven repo mean? And how they can be used?

After modifying the version number to 9.0.0.v20130308, I get a different error:

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

Here is my updated 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>

Answer

andyb picture andyb · Mar 13, 2013

Jetty has moved around a lot - see the History. Eclipse is the most recent home, as of 2009. The Maven artifacts have been renamed along the way, so your searches are finding documentation for older versions of Jetty and the maven plugin.

The latest (v9) jetty-maven-plugin documentation lists the dependency as:

<plugin>
  <groupId>org.eclipse.jetty</groupId>
  <artifactId>jetty-maven-plugin</artifactId>
  <version>9.0.0.v20130308</version> <!-- latest at time of writing -->
</plugin>

The other libraries like jetty-continuation or jetty-jsp are just sub-modules of the Jetty Project. Some documentation exists on the older wiki for Jetty 7 and 8 but I cannot see anything updated for v9 yet. The modular design is the Jetty developer's organisation of their code into well defined modules which have all been made available separately for developers that may want to use just want a small part of Jetty.