如何使用Maven创建没有依赖关系的可执行jar?

我想将它打包在一个可执行的jar中以便分发。 我需要一个可执行文件,如main.jar,所有依赖项都在libs / * .jar中

如何在没有预先包含到依赖库的情况下制作maven可执行jar?

在如何使用Maven创建具有依赖项的可执行JAR? 2010年12月1日10:46安德烈·阿隆森回答了一个注释,但那个根本不起作用(失败的sadescriptorRef未设置)。

你可以在一定程度上实现这一目标。

首先,您可以通过适当地配置maven jar插件来创建可执行jar 。

然后,您将使用maven程序集插件创建一个jar-with-dependencies, 不包括您的项目jar 。 为此,您将创建一个描述符文件,比如src/main/assembly/descriptor.xml ,就像这样。

  jar-with-dependencies  jar  false   / false true runtime    

像这样在你的项目中使用它。

  [...]  [...]   maven-assembly-plugin 2.2.1   src/main/assembly/descriptor.xml   [...]     

您最终将得到两个jar子 – 一个是由您的项目创建的可执行jar,另一个是由程序集插件创建的jar-with-dependencies。

我更喜欢这个有点修改的解决方案。 使用类路径集创建可执行jar,并将所有依赖项复制到给定目录。

您不需要任何其他文件。

在安装阶段正在复制依赖项。

    org.apache.maven.plugins maven-jar-plugin    true lib/ fully.qualified.MainClass      org.apache.maven.plugins maven-dependency-plugin   install  copy-dependencies   ${project.build.directory}/lib   runtime provided        

我更新了答案,只复制运行时依赖项,如此处所述- 复制正确的依赖项 。 排除测试和提供的依赖项。