Home >Java >javaTutorial >How to Add a JAR Dependency via Relative Path in Maven without Using a Repository?
Maven provides a convenient way to manage dependencies for Java projects. However, when working with proprietary JARs that you want to avoid adding to a repository, you may need to find an alternative approach. This article explains how to add a dependency to a JAR by relative path in Maven.
Adding proprietary JARs to a repository can be inconvenient, especially when you want to keep your project commands simple (e.g., mvn compile). Instead, you may prefer to store the JARs in a third-party library within source control and link to them via a relative path in the pom.xml file.
To achieve this, it is recommended to use a "file repository" specific to the project and avoid the system scope. System-scoped dependencies can cause issues in certain situations (e.g., assembly).
1. Declare a File Repository:
In the pom.xml file, declare a repository with a unique ID and a URL pointing to the local path of your third-party library:
<repositories> <repository> <id>my-local-repo</id> <url>file://${project.basedir}/my-repo</url> </repository> </repositories>
2. Install the Third-Party JAR:
Use the maven-install-plugin's install:install-file goal to install the JAR into the local repository. Specify the group ID, artifact ID, version, packaging, and the local repository path:
mvn org.apache.maven.plugins:maven-install-plugin:2.3.1:install-file \ -Dfile=<path-to-file> -DgroupId=<myGroup> \ -DartifactId=<myArtifactId> -Dversion=<myVersion> \ -Dpackaging=<myPackaging> -DlocalRepositoryPath=<path>
3. Add the Dependency:
Finally, add the dependency in the pom.xml file as you would for any other dependency, but without the system scope:
<dependency> <groupId>your.group.id</groupId> <artifactId>3rdparty</artifactId> <version>X.Y.Z</version> </dependency>
This approach allows you to link to the JAR via a relative path from your source control without the need for a repository.
The above is the detailed content of How to Add a JAR Dependency via Relative Path in Maven without Using a Repository?. For more information, please follow other related articles on the PHP Chinese website!