2009-09-02 19 views
35

¿Cómo puedo añadir la API de servlets a pom.xml de mi proyectocómo añadir la API servlet a mi pom.xml

mvnrepository.com tiene un montón de API servlet y proyectos con nombres similares, que no conozco cual es el correcto. ¿O están todos ellos bien?

+0

Por alguna versión -> http://mvnrepository.com/artifact/javax.servlet/javax.servlet- api/3.1.0. En ese enlace encontrará fragmentos de código XML que permiten agregarlo como una dependencia. Puede elegir otra versión, por supuesto, solo tome nota de "Nota: hay una nueva versión para este artefacto" – Andrejs

Respuesta

43

Creo que la mayoría de los servidores web/app vienen equipados con una versión de la API de servlets, así que no querrás agrupar la API en tu archivo .war. Tendrá que averiguar qué versión se incluye con su servidor, entonces puede utilizar

<dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>servlet-api</artifactId> 
    <version>${servlet-api-version}</version> 
    <scope>provided</scope> 
</dependency> 

sustitución de servlet-api-versión con su versión. Deberá especificar el alcance "provisto" para que api.jar no esté incluido en su archivo war.

+0

Buen punto, se me olvidó mencionar que –

+0

tiene que agregar la aplicación servlet-api en la etiqueta de propiedades también ? – SoulMan

+0

preferiblemente, sí, o simplemente podría poner la versión directamente en la etiqueta de la versión si lo prefiere. – digitaljoel

0

Depende de la versión de la API de servlet que esté utilizando.

El artefacto javax.servlet proporcionará frascos para todas las versiones de servlet API.

2

Utilizamos

<dependency> 
    <groupId>javax</groupId> 
    <artifactId>j2ee</artifactId> 
    <version>1.4</version> 
    <scope>provided</scope> 
</dependency> 

pero si sólo se necesita la API servlet es posible que desee utilizar

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

Alcance proporcionado se puede utilizar cuando no desea poner el archivo jar dentro de la carpeta WEB-INF/lib en su lugar lo está suministrando en tiempo de ejecución ya sea por contenedor o JDK.

4
<dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
     <scope>provided</scope> 
    </dependency> 
2

Para servlet-api 3.1.0, aquí es la declaración:

<dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>javax.servlet-api</artifactId> 
    <version>3.1.0</version> 
</dependency> 
+1

En [mvnrepository] (http://mvnrepository.com) en la entrada de 'javax.servlet: servlet-api: 3.0-alfa-1' alguien ha escrito (y no tengo idea de quién): _Nota: Este artefacto fue movido a: Nuevo grupo javax.servlet Nuevo artefacto javax.servlet-api_. Entonces, el 'javax.servlet: servlet-api' aparentemente más correcto no es el correcto. – Adam

+0

Impresionante, gracias, todavía me hace la pregunta, ¿cómo lo sabías? Amablemente comparte el maven-fu :) – John

Cuestiones relacionadas