¿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.