Question

I have a maven project that has a set of library dependancies that are not available via any maven repository. How can I add those libraries to the pom? I want to do this so when I run 'mvn eclipse:eclipse' it doesnt remove those libraries from the eclipse classpath.

Was it helpful?

Solution

You have 3 options:

  • Add your libraries to your local repository via install:install-file (obviously, this is not portable, you won't be able to build the project on another machine without doing the same).
  • Install and run an "enterprise repository" like Nexus, Archiva, or Artifactory and add your libraries via deploy:deploy-file.
  • Setup a file based repository as described in this previous answer and put your libraries in there.

Then, declare your libraries in your pom like any other dependency.

OTHER TIPS

You can declare it as a dependency with system scope.

<project>
...
 <dependencies>
   <dependency>
     <groupId>sun.jdk</groupId>
     <artifactId>tools</artifactId>
     <version>1.5.0</version>
     <scope>system</scope>
     <systemPath>${java.home}/../lib/tools.jar</systemPath>
   </dependency>
 </dependencies>
 ...
</project>

You can include them with your project in a sub-directory (perhaps lib/). You can also provide .bat and/or .sh files containing all the appropriate calls to the maven-install-plugin necessary for each project member (or server env) to add these jars to the local repo.

This approach allows new project members to get up & running quickly, without having to invest several hours in setting up a new public repo for your project or team.

You can't 'add them to the pom'. You have to put them in some repo. You can put them in the local repo with the maven-install-plugin, as suggested by the error message. Or you can deploy them in a local copy of Nexus or something like it.

recently I created a small UI Util to install libraries to you local repository. It works the same way as install:install-file.

https://github.com/escv/maven-install-ui

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top