There is also the app assembly maven plugin:
http://mojo.codehaus.org/appassembler/appassembler-maven-plugin/

/Anders

On Mon, May 11, 2015 at 10:08 PM, Mark Eggers <its_toas...@yahoo.com.invalid
> wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 5/11/2015 12:46 PM, Richard Catlin wrote:
> > I built a jar using a pom.  The jar depends on jars in the maven
> > repository.  How do I run my jar and include the jars in the maven
> > repository in the classpath?  If it possible to extract all the
> > dependent jars into a /lib directory that I can add to my classpath
> > at runtime?
> >
> > Thanks. Richard
> >
>
> Richard,
>
> I can think of two ways to do this.
>
> 1. Uber jar (I've not tried this)
>
> See the Shade plugin at:
> https://maven.apache.org/plugins/maven-shade-plugin/
>
> 2. Assembly plugin (this is what I do)
>
> A. JAR Plugin
> In your POM, configure the JAR plugin to contain three pieces of
> information.
>
> a) mainClass - this is obviously the class that has the main method
> b) addClassPath - set this to true
> c) classpathPrefix - I've set mine to lib
>
> B. Dependency Plugin
> In your POM, configure the dependency plugin to copy all of the
> dependencies to the subdirectory of the target directory. The
> subdirectory name should be the same as the classpathPrefix value
>
> For example:
>
> <plugin>
>   <groupId>org.apache.maven.plugins</groupId>
>   <artifactId>maven-dependency-plugin</artifactId>
>   <version>2.8</version>
>   <executions>
>     <execution>
>       <phase>package</phase>
>       <goals>
>         <goal>copy-dependencies</goal>
>       </goals>
>       <configuration>
>        <outputDirectory>${project.build.directory}/lib</outputDirectory>
>        <includeScope>compile</includeScope>
>      </configuration>
>     </execution>
>   </executions>
> </plugin>
>
> (This is an old project, update as appropriate).
>
> C. Assembly Plugin
>
> Configure the assembly plugin to create a zip file, tar.gz file,
> whatever . . .
>
> In src/main/assembly/assembly.xml, put in something like the following
> (note that I've left out the namespaces for brevity):
>
> <assembly>
>     <id>bin</id>
>     <formats>
>         <format>tar.gz</format>
>         <format>zip</format>
>     </formats>
>     <includeBaseDirectory>false</includeBaseDirectory>
>     <includeSiteDirectory>false</includeSiteDirectory>
>     <fileSets>
>         <fileSet>
>             <directory>target</directory>
>             <outputDirectory></outputDirectory>
>             <includes>
>                 <include>*.jar</include>
>                 <include>lib/</include>
>             </includes>
>         </fileSet>
>     </fileSets>
> </assembly>
>
> C. Construct your package:
>
> mvn package
> mvn assembly:single
>
> This will leave you a .tar.gz file and a .zip file (using the
> assembly.xml above).
>
> D. Unzip (or untar) and run
>
> Now when you unarchive your .tar.gz file or .zip file, you'll end up
> with a JAR file (your code) and a lib subdirectory with all of the
> compile time dependencies. You should be able to run the JAR file from
> the command line with:
>
> java -jar [your-jar-file-name]
>
> I'm a relative newcomer to Maven, but I hope this helps.
>
> . . . just my two cents.
> /mde/
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2
>
> iQEcBAEBAgAGBQJVUQxCAAoJEEFGbsYNeTwtJ6MIAKdAktpSRvs8c+e8gxQSZ0Ce
> zTGUi90FxH1tDS5BKhWVxAFH+UA6ZPA/rFl/UCG0S698ZDZ7CHBZbhp0AxDHZg8j
> M9TvSOx0OauTiqubY4PmpYDE34oTSUVQPBvn7BQxgUa6PXLMNYTN+ex8OZzXpG7G
> yWyU0IW5o1mHwo/zCOy7yetHPezRC0KGPiQc7esjpiubuwHWPOUebBNeiqD/0/Fg
> iS0rIUDHOZaoryumYr9gFvRpQ0Tyorz/PT51f/6t0cceWNfgPls0yCxdQmzsaUVD
> FA4Ck2fkIeAquRCmxdDOXtM5PKSVFj8Sd1O2OHkcYPMgCJm38GVd4fSfx17s+dU=
> =MNr0
> -----END PGP SIGNATURE-----
>
> ---
> This email is free from viruses and malware because avast! Antivirus
> protection is active.
> http://www.avast.com
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
> For additional commands, e-mail: users-h...@maven.apache.org
>
>

Reply via email to