1. ホーム
  2. java

[解決済み] Servlet 3.0 API の Maven 依存関係?

2022-02-27 23:13:04

質問

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だけを依存関係として追加したいのですが。

正直なところ、その理由がよくわからないのですが、気にしないでください...。

<ブロッククオート

ブラスター 個別の依存関係は、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 から そこで を作成し、自分のリポジトリにインストールしてください。