Add 3rd Jars to Maven2 Build Path without Installing Them


Add 3rd Jars to Maven2 Build Path without Installing Them

Sometimes, we want to add a 3rd jar to our project, but it is not included in public maven repository, and we don't want to bother to create a local or intranet repository, and install the jar into it.

 

For example, we want to add javaparser to our application, it is a library to parse java source, and extract methods, fields, javadoc, and comments.

We can define its scope as system, and specify its path.

<dependency>

    <groupId>japa.parser</groupId>

    <artifactId>javaparser</artifactId>

    <version>1.0.8</version>

    <scope>system</scope>

    <systemPath>${basedir}/lib/javaparser-1.08.jar</systemPath>

</dependency>

Where ${basedir} is pointing to your project's root.

 

But this has some limitations, for example, when use maven assembly plugin to generate assemblies, jars under scope "system" are not included.

 

The solution is to put the dependency in a "file system repository" local to the project, then use install-file to install the jar to local default repository first (~/.m2/repository), then move the directory tree to ${basedir}/my-repo.

mvn install:install-file  -Dfile=%LIBPATH%\javaparser1.0.8.jar -DgroupId=japa.parser  -DartifactId=javaparser -Dversion=1.0.8 -Dpackaging=jar  -DgeneratePom=true 

I would declare that repository in my pom.xml like this:

<repositories>

  <repository>

    <id>my</id>

    <url>file://${basedir}/my-repo</url>

  </repository>

</repositories>

<dependency>

    <groupId>japa.parser</groupId>

    <artifactId>javaparser</artifactId>

    <version>1.0.8</version>

    <scope>compile</scope>

</dependency>

 

Resources:

Maven 2 assembly with dependencies: jar under scope “system” not included.

Can I add jars to maven 2 build classpath without installing them?

http://code.google.com/p/javaparser/

http://retrotranslator.sourceforge.net/


Labels

adsense (5) Algorithm (69) Algorithm Series (35) Android (7) ANT (6) bat (8) Big Data (7) Blogger (14) Bugs (6) Cache (5) Chrome (19) Code Example (29) Code Quality (7) Coding Skills (5) Database (7) Debug (16) Design (5) Dev Tips (63) Eclipse (32) Git (5) Google (33) Guava (7) How to (9) Http Client (8) IDE (7) Interview (88) J2EE (13) J2SE (49) Java (186) JavaScript (27) JSON (7) Learning code (9) Lesson Learned (6) Linux (26) Lucene-Solr (112) Mac (10) Maven (8) Network (9) Nutch2 (18) Performance (9) PowerShell (11) Problem Solving (11) Programmer Skills (6) regex (5) Scala (6) Security (9) Soft Skills (38) Spring (22) System Design (11) Testing (7) Text Mining (14) Tips (17) Tools (24) Troubleshooting (29) UIMA (9) Web Development (19) Windows (21) xml (5)