2010-02-16 22 views
32

Estoy usando maven2, ¿cómo agrego una dependencia a JSTL (La biblioteca de etiquetas estándar JSP)?Incluir dependencia JSTL con Maven

+0

Hay una sutileza entre la versión 1.1.2, versión 1.2, Tomcat y GlassFish. Consulte aquí para obtener más información: http://tshikatshikaaa.blogspot.nl/2012/07/how-to-add-jslt-taglibs-in-maven-project.html – JVerstry

Respuesta

31

Debe agregarlo a su archivo pom.xml.

En el nodo de dependencias necesita agregar una referencia a JSTL. Probablemente necesites configurar su alcance para compilar. Así se vería algo como esto

<dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>jstl</artifactId> 
    <version>"whatever version you need"</version> 
    <scope>runtime</scope> 
</dependency> 

Esto es suponiendo que usted tiene las referencias adecuadas en el repositorio de la distribución experto en su pom.xml o settings.xml

+0

¿Esto incluye el 'standard.jar' también? Estoy usando GlassFish, ¿debería incluir solo el trabajo de dependencia 'jstl'? –

33

Las dependencias mencionadas anteriormente no es suficiente para mí (utilizando Tomcat 5.x como contenedor de servlet, que no proporciona la implementación JSTL). Simplemente importa el paquete de interfaz JSTL según el proyecto, y causará un error de tiempo de ejecución en Tomcat.

Aquí está la parte de la dependencia utilizada en mi proyecto, con suerte puede ayudar a otros. La parte más difícil es nombrar la implementación JSTL de Apache en el repositorio.

<dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.1.1</version> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>taglibs</groupId> 
     <artifactId>standard</artifactId> 
     <scope>runtime</scope> 
     <version>1.1.1</version> 
    </dependency> 
    <dependency> 
     <groupId>taglibs</groupId> 
     <artifactId>c</artifactId> 
     <version>1.1.1</version> 
     <scope>runtime</scope> 
     <type>tld</type> 
    </dependency> 
    <dependency> 
     <groupId>taglibs</groupId> 
     <artifactId>fmt</artifactId> 
     <version>1.1.1</version> 
     <scope>runtime</scope> 
     <type>tld</type> 
    </dependency> 
+0

¿Qué es tld tipo? – dcompiled

+0

@dcompiled No encuentro ningún documento oficial sobre esto de Maven, pero para mi conjetura, tld significa "Descriptor de la biblioteca de etiquetas", que a su vez es un archivo XML. –

+0

para el registro, estoy usando Tomcat 7 y el que figura en la respuesta aceptada parece ser suficiente para mí ... – eis

1

que tenían el mismo problema. Lo resolví agregando las bibliotecas de Apache Tomcat a la ruta de compilación de Java.

Ver mis capturas de pantalla, que estoy usando Maven:

Antes de bibliotecas Tomcat añadiendo:

desc

Después de añadir bibliotecas Tomcat:

desc

1

Desde: apache taglib

 <!-- TAGLIB: --> 
      <dependency> 
      <groupId>org.apache.taglibs</groupId> 
      <artifactId>taglibs-standard-spec</artifactId> 
      <version>1.2.1</version> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.taglibs</groupId> 
      <artifactId>taglibs-standard-impl</artifactId> 
      <version>1.2.1</version> 
     </dependency> 
      <!-- From taglib doc: To use this distribution with your own web applications, add the following JAR 
       files to the '/WEB-INF/lib' directory of your application: 
        - taglibs-standard-spec-1.2.1.jar 
        - taglibs-standard-impl-1.2.1.jar 
        - taglibs-standard-jstlel-1.2.1.jar 
        - xalan-2.7.1.jar 
        - serializer-2.7.1.jar 
      --> 
     <dependency> 
     <groupId>xalan</groupId> 
     <artifactId>xalan</artifactId> 
     <version>2.7.1</version> 
    </dependency> 

     <dependency> 
     <groupId>xalan</groupId> 
     <artifactId>serializer</artifactId> 
     <version>2.7.1</version> 
    </dependency> 
    <!-- TAGLIB: --> 
0
<!-- standard.jar --> 
<dependency> 
    <groupId>taglibs</groupId> 
    <artifactId>standard</artifactId> 
    <version>1.1.2</version> 
</dependency> 

<!-- JSTL --> 
<dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>jstl</artifactId> 
    <version>1.1.2</version> 
</dependency> 
Cuestiones relacionadas