Servlet 3.0 APIをロードするようにMaven 2に指示するにはどうすればよいですか?
私は試しました。
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>3.0</version>
<scope>provided</scope>
</dependency>
http://repository.jboss.com/maven2/ を使用していますが、どのリポジトリが正しいのでしょうか?
**追記:***。
Java EE 6 API全体の依存関係と、以下の設定で動作します。
<repository>
<id>java.net</id>
<url>http://download.java.net/maven/2</url>
</repository>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
私はServlet APIだけを依存関係として追加したいのですが、"Brabster"が言うように、個別の依存関係はJava EE 6 Profilesに置き換えられているのかもしれません。この仮定を確認するソースはありますか?
Servlet APIのみを依存関係として追加したいと考えています。
正直なところ、理由はよくわかりませんが、気にしないでください...。
Brabster個別の依存関係は、Java EE 6 Profilesに置き換えられました。この仮定を確認するソースはありますか?
Java.netのmavenリポジトリでは、確かにWebProfile用の以下のアーティファクトが提供されています。
<repositories>
<repository>
<id>java.net2</id>
<name>Repository hosting the jee6 artifacts</name>
<url>http://download.java.net/maven/2</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
このjarには、Servlet 3.0、EJB Lite 3.1、JPA 2.0、JSP 2.2、EL 1.2、JSTL 1.2、JSF 2.0、JTA 1.1、JSR-45、JSR-250が含まれています。
しかし、私の知る限りでは、これらのAPIが(java.netのリポジトリやその他の場所で)個別に配布されないとは言い切れません。例えば(特殊なケースかもしれませんが)、JSF 2.0のAPIは(java.netのリポジトリで)別途入手可能です。
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.0.0-b10</version>
<scope>provided</scope>
</dependency>
そして実際には、そこから javax.servlet-3.0.jar
を入手して、自分のリポジトリにインストールすることができます。
残念ながら、依存関係としてjavaee-(web)-apiを追加しても、IDE内で閲覧できるServlet ApiのJavadocやSourceを得ることはできません。これは他のすべての依存関係(JPA, EJB, ...)にも当てはまります。 Servlet APIのsources/javadocが必要な場合は、pom.xmlに以下を追加してください(少なくともJBoss&Glassfishでは動作します)。
リポジトリ。
<repository>
<id>jboss-public-repository-group</id>
<name>JBoss Public Repository Group</name>
<url>https://repository.jboss.org/nexus/content/groups/public/</url>
</repository>
依存しています。
<!-- Servlet 3.0 Api Specification -->
<dependency>
<groupId>org.jboss.spec.javax.servlet</groupId>
<artifactId>jboss-servlet-api_3.0_spec</artifactId>
<version>1.0.0.Beta2</version>
<scope>provided</scope>
</dependency>
Java EE 6のすべての部分のソースとJavadocsを得るために、依存関係からjavaee-apiを完全に削除し、個別の部分(javax.ejb、javax.faces、...)で置き換えました。
EDIT:
これに相当するGlassfishの依存関係は以下の通りです(ただし、どのappserverを使用するかに関わらず、両方の依存関係が機能するはずです)。
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.servlet</artifactId>
<version>3.0</version>
<scope>provided</scope>
</dependency>
9月のServlet 3.0 API on DZoneのPOM例を見つけました。
java.netのレポを使うことをお勧めします。http://download.java.net/maven/2/
そこにはJava EE APIがあり、例えばhttp://download.java.net/maven/2/javax/javaee-web-api/6.0/ with POMなど、あなたが求めているものではないかと思われます。
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
</dependency>
APIのバージョン表記が、新しい'profiles'の一環として、EE仕様全体のバージョン(Java EE 6 vs. Servlets 3.0など)に合わせて変更されたものと思われます。JARを見ると、すべての3.0サーブレットのものが入っているようです。お楽しみに