我是 maven 的初学者,现在我对这些 maven 插件之间的区别感到困惑。这些都是创建jar文件吗?现在我的问题是
各个插件创建的jar有什么区别。(组装插件、jar-plugin、shaded插件)
每个插件的用途。 (程序集、jar 插件、阴影插件)
我知道,即使没有指定任何这些插件,一旦键入 mvn package,就会有一个 jar 输出。没有这些插件的输出 jar 和有这些插件的输出 jar 有什么区别? TIA
最佳答案
maven-jar-plugin
:这个插件提供了构建和签署 JAR 的能力。但它只是编译src/main/java
和src/main/resources/
下的 java 文件。它不包括依赖项 JAR 文件。maven-assembly-plugin
:此插件将所有依赖 JAR 提取到原始类中并将它们组合在一起。它还可以用于通过指定主类来构建可执行 JAR。它仅适用于依赖较少的项目;对于有很多依赖的大型项目,会导致Java类名冲突。maven-shade-plugin
:将所有依赖打包到一个 uber-JAR 中。它还可以用于通过指定主类来构建可执行 JAR。这个插件特别有用,因为它合并了特定文件的内容,而不是被 relocating classes 覆盖。 .当 JAR 中存在同名的资源文件并且插件尝试将所有资源文件打包在一起时,需要这样做。
关于java - maven 插件之间的区别 ( assembly-plugins , jar-plugins , shaded-plugins ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38548271/