Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to include local jar files in Maven project [duplicate]

I do not want to install a few jars into a Maven repository (both local/remote). In particular I have a few jar files located in

c:\work\projects\myapp\src\main\webapp\WEB-INF\lib\test.jar  c:\work\projects\myapp\src\main\webapp\WEB-INF\lib\test2.jar 

How to include them into my project when open/edit with NetBeans?

like image 898
cometta Avatar asked Sep 22 '10 02:09

cometta


People also ask

How do I create a missing jar in Maven repository?

Look in your . m2 directory (use the paths which you see in the dialog above) and check whether the files are there or whether they are really missing. If they are missing, run "mvn install" (see the "Run as..." menu) to download them.


1 Answers

Although it works to use the systemPath reference, it is better to create a local repository. And fortunately, it is easy to do.

Creating a local repository holding jars not available in a public repository

NOTE: I use Eclipse, so some of the instructions are specific to Eclipse. Most are easily generalizable.


Assumptions

  • The jar was created by Maven in another project with the following...

    <groupId>com.foo</groupId> <artifactId>test</artifactId> <version>0.1.1</version> <packaging>jar</packaging> 

In Project (that wants to access the jars)

  • Create repo directory just off the project base directory
  • For each jar to be accessed locally...
    • add directories for each level of the groupID (ex. /repo/com/foo)
    • add jar name (aka artifactId) without the version (ex. /repo/com/foo/test)
    • add directory for the version of the jar (ex. /repo/com/foo/test/0.1.1)
    • put the jar in that directory (ex. /repo/com/foo/test/0.1.1/test-0.1.1.jar)

In pom.xml (for the project that wants to access the jars)

  • Define the local repository

    <repositories>   <repository>     <id>data-local</id>     <name>data</name>     <url>file://${project.basedir}/repo</url>   </repository> </repositories> 
  • Add the dependency on the local jar. From our example above, this would be...

    <dependency>   <groupId>com.foo</groupId>   <artifactId>test</artifactId>   <version>0.1.1</version> </dependency> 

Rebuild

  • Rt click pom.xml -> Run as -> Maven build
like image 130
E L Rayle Avatar answered Oct 10 '22 14:10

E L Rayle