如何使用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
我更新了答案,只复制运行时依赖项,如此处所述- 复制正确的依赖项 。 排除测试和提供的依赖项。