Jettyを使用して、mavenを使用して単純なhelloworldサーブレットをホストしようとしています。私はとても混乱しています。
これらの 指示 に従いましたが、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)]
混乱を助長するために、例としてWebを検索すると、一部は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>
Jettyは大々的に動きました- History を参照してください。 Eclipseは2009年現在の最新のホームです。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の 古いwiki にはいくつかのドキュメントがありますが、v9向けに更新されたものはまだありません。モジュール設計は、Jetty開発者がコードを明確に定義されたモジュールに編成したもので、Jettyのごく一部を使用したいだけの開発者が個別に利用できるようになっています。
Eclipseバージョンはより新しいバージョンです。サイトの指示に従ってください。
これが私の作業用の設定です。最新の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>