2013-10-29 46 views
1

当我从Eclipse中运行Maven和我产生一个JAR,我需要运行在命令行这样的JAR,一旦发布:运行的JAR与依赖关系的工作和表现

java -classpath [long list of dependencies] uk.co.superzoom.App 

它是释放JAR的最佳途径或者我应该改变的pom.xml,以便能够运行在这样的JAR:

java -jar myjar.jar 

如果第二种情况下,将需要两个变化:

1)添加到该男子ifest关于主类的infromation为了创建一个可运行的JAR

Main-Class: uk.co.superzoom.App 

2)自动添加所有的依赖,而不必从命令行每次写长长的名单(目前他们仅可见Eclipse,但从命令行我需要添加长列表)。

如何在我的pom.xml中实现步骤(1)和(2)。你能提供这方面的例子吗?

+0

使用maven shade插件。 – aet

回答

1

使用Maven-Shade-Plugin。

the plugin's page

此插件提供打包的伪影在尤伯杯罐的能力,其中包括它的依赖和遮阳 - 即重命名 - 的一些相关性的程序包。

该插件将所有依赖项捆绑到可运行jar文件中。它也可以让您通过使用下面的代码最小化的jar文件的大小:

<configuration> 
    <minimizeJar>true</minimizeJar> 
</configuration> 

见一些信息我question关于最小化。