Setting Up Custom Maven Repository with a Relative Folder
There are times where we want to build our application while pointing our library to a specific custom folder, which is having a relative folder location to current project Java folder.
For example, i have a Java project and a Libs folder with structure like below
libs/ +--- org | +--- postgresql | | +--- postgresql | | | +--- random.version | | | | +--- postgresql-random.version.jar java_project/ +--- pom.xml +--- src | +--- main | | +--- java
We can build our java_project by refering to libs folder by using this configuration on our pom.xml
<repositories> <repository> <id>local-repo</id> <name>Local Repository</name> <url>file://${project.basedir}/../libs</url> </repository> </repositories>
And refer it
<dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>random.version</version> </dependency>
Running maven build command will display the complete build log where library is coming from our relative folder location,
$ mvn clean package ....... Downloading from local-repo: file:///source/java_project/../libs/org/postgresql/postgresql/random.version/postgresql-random.version.jar [WARNING] Could not validate integrity of download from file:///source/java_project/../libs/org/postgresql/postgresql/random.version/postgresql-random.version.jar: Checksum validation failed, no checksums available [WARNING] Checksum validation failed, no checksums available from local-repo for file:///source/java_project/../libs/org/postgresql/postgresql/random.version/postgresql-random.version.jar Downloaded from local-repo: file:///source/java_project/../libs/org/postgresql/postgresql/random.version/postgresql-random.version.jar (1.0 MB at 7.0 MB/s)