To avoid to the manual hassle, you can add the .jar in pom.xml file without running the mvn install:install-file goal. The idea is to refer a .jar from your project base directory using the <systemPath> element.
In example below, I put my jar files to /myjars directory and point to the jar file as
<systemPath>${project.basedir}/myjars/[Jar file name]</systemPath>
Directory Structure
../src/..
pom.xml
/myjars/my-lib-core.jar
/myjars/third-party.jar
Pom.xml
<dependencies> <dependency> <groupId>com.my.library</groupId> <artifactId>mylib-core</artifactId> <version>1.VERSION</version> <scope>system</scope> <systemPath>${project.basedir}/myjars/my-lib-core.jar</systemPath> </dependency>
<dependency> <groupId>com.third-party.library</groupId> <artifactId>thirdparty</artifactId> <version>1.VERSION</version> <scope>system</scope> <systemPath>${project.basedir}/myjars/third-party.jar</systemPath> </dependency>
For web project (war files )
If you are working on a web project, the above configuration won't add the jars to war file by default. You need to do following.Here we are asking maven-war-plugin to add all jar ( **/*.jar) from ${project.basedir}/myjars to WEB-INF/lib folder when creating the war file.
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <warSourceDirectory>src/main/webapp/</warSourceDirectory> <webResources> <resource> <directory>${project.basedir}/myjars</directory> <targetPath>WEB-INF/lib</targetPath> <includes> <include>**/*.jar</include> </includes> </resource> </webResources> </configuration> </plugin> </plugins> </build>