238 votes

Maven de la dépendance de la Servlet API 3.0?

Comment puis-je indiquer à Maven 2 pour charger la Servlet API 3.0?

J'ai essayé:

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>3.0</version>
    <scope>provided</scope>
</dependency>

J'utilise http://repository.jboss.com/maven2/ mais ce référentiel serait correct?

Addendum:

Il fonctionne avec une dépendance pour l'ensemble de Java EE 6 API et les paramètres suivants:

<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>

Je préfère seulement ajouter de la Servlet API de la dépendance, mais "Brabster" peut-être raison qui séparent les dépendances ont été remplacés par Java EE 6 Profils. Est-il une source qui confirme cette hypothèse?

467voto

Sa'ad Points 3375

Cela semble être ajoutés récemment:

http://repo1.maven.org/maven2/javax/servlet/javax.servlet-api/3.0.1/

<dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.0.1</version>
        <scope>provided</scope>
</dependency>

117voto

Pascal Thivent Points 295221

Je préfère seulement ajouter de la Servlet API de la dépendance,

Pour être honnête, je ne suis pas sûr de comprendre pourquoi, mais jamais l'esprit...

Brabster séparer les dépendances ont été remplacés par Java EE 6 Profils. Est-il une source qui confirme cette hypothèse?

Le référentiel de Java.net offre en effet la suite de l'artefact pour le 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>

Ce pot comprend 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.

Mais à ma connaissance, rien ne permet de dire que ces Api ne sera pas distribué séparément (dans java.net référentiel ou d'ailleurs). Par exemple (ok, il peut un cas particulier), la JSF 2.0 de l'API est disponible séparément (dans le java.net référentiel):

<dependency>
   <groupId>com.sun.faces</groupId>
   <artifactId>jsf-api</artifactId>
   <version>2.0.0-b10</version>
   <scope>provided</scope>
</dependency>

Et en fait, vous pourriez obtenir de l' javax.servlet-3.0.jar à partir de là, et l'installer dans votre propre référentiel.

38voto

cuh Points 1534

Ou vous pouvez utiliser le Central Repository Maven avec l'API Servlet 3.0, qui est également prévue pour le Serveur Tomcat 7.0.X

    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-servlet-api</artifactId>
        <version>7.0.21</version>
        <scope>provided</scope>
    </dependency>

à partir d'ici: http://repo2.maven.org/maven2/org/apache/tomcat/tomcat-servlet-api/7.0.21/

28voto

rustyx Points 2722

Voici ce que j'utilise. Remarque: toutes ces dépendances venir avec les sources et sont situés dans le centre des pensions.

<dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.servlet</artifactId>
    <version>3.0</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.2</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.el</groupId>
    <artifactId>el-api</artifactId>
    <version>2.2</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>

24voto

ifischer Points 4726

Malheureusement, l'ajout de la javaee-(web)-api en tant que dépendance ne vous donne pas la Javadoc ou de la Source de la Servlet Api pour les parcourir à partir de l'intérieur de l'IDE. C'est également le cas pour toutes les autres dépendances (JPA, EJB, ...) Si vous avez besoin de la Servlet API sources/javadoc, vous pouvez ajouter les lignes suivantes à votre pom.xml (fonctionne au moins pour JBoss&Glassfish):

Référentiel:

<repository>
  <id>jboss-public-repository-group</id>
  <name>JBoss Public Repository Group</name>
  <url>https://repository.jboss.org/nexus/content/groups/public/</url>
</repository>

Dépendance:

<!-- 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>

J'ai complètement supprimé le javaee-api de mes dépendances et l'a remplacé par les parties discrètes (javax.ejb, javax.les visages, ...) pour obtenir les sources et la documentation Javadoc pour toutes les parties de Java EE 6.

EDIT:

Ici est l'équivalent de Glassfish dépendance (bien que les deux dépendances doivent travailler, n'importe quel serveur d'applications que vous utilisez).

<dependency>
  <groupId>org.glassfish</groupId>
  <artifactId>javax.servlet</artifactId>
  <version>3.0</version>
  <scope>provided</scope>
</dependency>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X