Maven, crear repositorio en el proyecto

¿Por qué es necesario un repositorio en el proyecto ?

Por diversas razones es necesario agregar librerías propietarias a nuestros proyectos, estas librerías pueden no estar en los repositorios públicos de maven y tendremos que descargarlas, un ejemplo es el driver JDBC de SQLServer.

Solución

Lo primero es descargar los jar que necesitemos y crear una carpeta repository dentro de nuestro proyecto.

Después en el pom.xml agregamos el repositorio de esta forma

<repositories>
    <repository>
        <id>repository</id>
        <url>file://${project.basedir}/src/main/resources/repository</url>
    </repository>

</repositories>

Como podemos ver la variable ${project.basedir} nos da la ruta absoluta a la raíz de nuestro proyecto.

Solo queda agregar nuestras librerías respetando la estructura de directorios de maven en los repositorios, la cual esta compuesta de la siguiente forma ( esto dentro de la carpeta repository ):

/groupId/artifactId/version/artifactId-version.jar

Por ejemplo si quisiéramos agregar el driver JDBC de SQLServer seria así:

  • Ruta donde estará nuestro jar /src/main/resources/repository/com/sqljdbc4/1.0/sqljdbc4-1.0.jar

  • Repositorio en el pom.xml

    <repositories>
    <repository>
        <id>repository</id>
        <url>file://${project.basedir}/src/main/resources/repository</url>
    </repository>
    

  • Dependencia en el pom.xml

    <dependency>
        <groupId>com</groupId>
        <artifactId>sqljdbc4</artifactId>
        <version>1.0</version>
        <scope>runtime</scope>
    </dependency>
    

Listo con esto tendremos disponible nuestro jar y podremos cambiar su scope para evitar el temido java.lang.ClassNotFoundException de nuestro driver.

Fuentes

Jesús Israel Perales Martínez

Soy estudiante de Ingeniería en Tecnología y Software de la FIME en la Universidad Autonoma de Nuevo León, me enfoco en el desarrollo con tecnologías web en especial Java EE y Nodejs.

Ciudad Guadalupe, Nuevo León