当Maven项目的打包方式为war时,项目构建时会将项目的所有依赖jar包打包进最终war包。
当项目的打包方式为jar时,项目构建时不会将依赖的jar包打包进最终的jar包。
但是,如果项目是命令行程序,则需要将所有的依赖一起打包,才可以进行分发。
Maven Assembly 插件是一个用来创建你应用程序特有分发包的插件,通过配置Maven Assembly 插件,可以以你希望的任何形式来装配输出。
<project>
[...]
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
[...]
</project>
添加好以上配置后,执行如下命令进行构建
mvn install assembly:assembly
在target目录下会生成[project-name]-[version]-jar-with-dependencies.jar