Las dependencias entre los distintos proyectos
Primero veamos qué dependencias nos ha dejado puestas el asistente en el proyecto *org.gvsig.visor*.
Si miramos el fichero *pom.xml*, de ese proyecto, en la sección *dependencyManagement* observaremos
la siguiente entrada:
.. code-block:: xml
org.gvsig
org.gvsig.core.maven.dependencies
2.0.1-SNAPSHOT
pom
import
Esto importa las dependencias de las distintas librerías de gvSIG, de forma que para todas
las librerías base de gvSIG no tengamos que preocuparnos por la versión de cada una de ellas.
Como esta importación está realizada en la sección *dependencyManagement*, solo es a título
informativo, es decir, no fija una dependencia con esas librerías.
Si vemos ahora la sección *dependencies*, encontraremos la entrada:
.. code-block:: xml
org.gvsig
org.gvsig.core.maven.dependencies
2.0.1-SNAPSHOT
pom
test
Con esto se fijarán dependencias de ejecución y test para todas las librerías base de
gvSIG, así no tendremos que preocuparnos por que estén cargadas las implementaciones de
todos los APIs de gvSIG cuando se ejecuten los test de nuestros proyectos.
Además de nos encontraremos con:
.. code-block:: xml
org.gvsig
org.gvsig.tools.lib
jar
compile
org.gvsig
org.gvsig.tools.lib
test-jar
test
org.gvsig
org.gvsig.fmap.geometry
compile
org.gvsig
org.gvsig.fmap.dal
compile
org.gvsig
org.gvsig.metadata.lib.basic.api
compile
Ahí se fijan dependencias de compilación con las principales librerías de gvSIG, y que normalmente
precisaremos en casi cualquier proyecto que vayamos a hacer y trabaje con gvSIG.
Esta configuración de dependencias la encontramos en el proyecto principal. Veamos ahora
qué dependencias precisaremos en los subproyectos.
- *org.gvsig.visor.lib/pom.xml* Este no aporta ninguna declaración de dependencias
adicional a la que define el proyecto padre que ya hemos comentado.
- *org.gvsig.visor.lib.api/pom.xml* Tampoco aporta nuevas dependencias.
- *org.gvsig.visor.lib.impl/pom.xml*. No aporta nuevas dependencias, pero deberemos
añadir en este proyecto las dependencias con el proyecto del API, tanto para compilación
como para ejecución de tests.
- *org.gvsig.visor.swing/pom.xml* que aunque no aporta nuevas dependencias, define
como dependencias los proyectos del *lib.api*.
- *org.gvsig.visor.swing.api/pom.xml* que no aporta nuevas dependencias.
- *org.gvsig.visor.swing.imple/pom.xml* que aunque no aporta nuevas dependencias, deberá
declarar sus dependencias con el API de swing para test y compilación.
.. warning:: También tiene una dependencia con la implementación para compilación
que no creo que debiese tener, hay que repasarlo.
- y por último *org.gvsig.visor.main/pom.xml*. Este declarará las dependencias con el
API de nuestras librerías para compilación y con la implementación para ejecución. Y además
añade dependencias de compilación con las librerías de gvSIG que utiliza, estas son:
.. code-block:: xml
org.gvsig
org.gvsig.fmap.control
compile
org.gvsig
org.gvsig.fmap.dal
compile
org.gvsig
org.gvsig.fmap.geometry
compile
org.gvsig
org.gvsig.fmap.mapcontext
compile