我正在尝试使用jetty来托管一个使用maven的简单helloworld servlet。我很困惑。
我遵循了这些instructions,但是当我发出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>
答案 0 :(得分:23)
Jetty已经走了很多 - 见History。从2009年开始,Eclipse是最新的主页.Maven工件已经重命名,因此您的搜索正在查找旧版Jetty和maven插件的文档。
最新版本(v9)jetty-maven-plugin documentation将依赖项列为:
<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项目的子模块。 Jetty 7和8的older wiki上存在一些文档,但我还没有看到任何针对v9更新的内容。模块化设计是Jetty开发人员将他们的代码组织成明确定义的模块,这些模块都是为开发人员单独提供的,他们可能只想使用Jetty的一小部分。
答案 1 :(得分:3)
eclipse版本是最近的版本。按照他们网站上的说明进行操作。
答案 2 :(得分:0)
这是我的工作配置。 使用最新的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>