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