Best way to create a maven artifact from existing jar

jar, java, maven-2

Solution

If you're not using a remote repository (which is a common situation for personal development), simply `install` these artifacts in your local repository using the `install:install-file` mojo:

mvn install:install-file 
  -Dfile=<path-to-file> 
  -DgroupId=<group-id> 
  -DartifactId=<artifact-id> 
  -Dversion=<version> 
  -Dpackaging=<packaging> 
  -DgeneratePom=true

Where: <path-to-file>  the path to the file to load
       <group-id>      the group that the file should be registered under
       <artifact-id>   the artifact name for the file
       <version>       the version of the file
       <packaging>     the packaging of the file e.g. jar

But obviously, this will make your build non portable (this might not be an issue though). To not sacrifice the portability, you'll have to make the artifacts available in a remote repository. In a corporate context, the common way to deal with that is to install an enterprise repository (and in that case, to `deploy` the artifacts indeed).

Update: Once your artifact is installed in your local repository, simply declare a `<dependency>` element in your pom like for any other dependency, e.g.:

<dependency>
  <groupId>aGroupId</groupId>
  <artifactId>aArtifactId</artifactId>
  <version>1.0.12a</version>
  <packaging>jar</packaging>
</dependency>

Problem

I'm mavenizing some projects. These projects all depend on a number of libraries, most of them are available in the maven repo. For the other libraries, I'd like to create a maven artifact, so I can use it as an dependency. The problem is, I only have jar files of these libraries. What is the best way to create artifacts from existing jar files?

Original source

Related problems