2010-12-27 7 views
12
<dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
     <scope>provided</scope> 
</dependency> 

Utilizo esa importación de dependencia en el pom.xml de mi proyecto. Mi pregunta es que he declarado 2.5 como versión. Sin embargo, ¿es importante escribir una versión más baja? Por ejemplo, quiero decir que si mi proyecto usa la versión 3.0 y escribo que se proporcionará 2.5. (Quiero decir que aceptemos que 2.5 está bien y que mi proyecto funciona bien, si no cambio nada más y simplemente cambio de 2.5 a 2.0 ¿causa un error?)maven proporcionó el alcance

Respuesta

6

Depende.

En general, si está esperando una versión exacta (incluso si se proporciona), entonces eso es lo que debe proporcionar.

Sin embargo, hay casos en los que es posible que necesite modificar un poco las versiones. Dicho esto, yo diría 2 puntos:

1) Probablemente sea correcto que su proyecto espere una versión más baja y se le proporcione una versión superior; siempre que la versión más alta no sea la más importante. Sugeriría echar un vistazo a un buen modelo de creación de versiones de código abierto, como un Apache project.

2) Probablemente NO bien para que su proyecto espere una versión más alta y obtenga una versión más baja. La razón principal es que no puedes esperar cosas que pueden no estar allí.

Espero que esto ayude.

+0

Gracias. Entiendo que si no uso algunos métodos de no tiene una compatibilidad con versiones inferiores, está bien. – kamaci

20

La solución correcta es declarar la versión de apéndice de servlet exacta utilizada en el contenedor al menor.

La palabra clave es siempre que: la versión que especifique se utiliza en tiempo de compilación y para la prueba. En tiempo de ejecución, se supone que lo proporciona su contenedor de tiempo de ejecución, p. Embarcadero.

Si la biblioteca de tiempo de ejecución real difiere de la declaración en su POM, está invitando a problemas. Si usted experimentará o no problemas es una cuestión de compatibilidad entre las versiones.

El Servlet API es compatible con versiones anteriores, consulte: Are the Java Servlet APIs backwards compatible?

+0

Gracias, lo describiste bien, estoy votando. – kamaci

Cuestiones relacionadas