java - maven 插件之间的区别 ( assembly-plugins , jar-plugins , shaded-plugins )

标签 java maven plugins jar

我是 maven 的初学者,现在我对这些 maven 插件之间的区别感到困惑。这些都是创建jar文件吗?现在我的问题是

  1. 各个插件创建的jar有什么区别。(组装插件、jar-plugin、shaded插件)

  2. 每个插件的用途。 (程序集、jar 插件、阴影插件)

  3. 我知道,即使没有指定任何这些插件,一旦键入 mvn package,就会有一个 jar 输出。没有这些插件的输出 jar 和有这些插件的输出 jar 有什么区别? TIA

最佳答案

  1. maven-jar-plugin:这个插件提供了构建和签署 JAR 的能力。但它只是编译 src/main/javasrc/main/resources/ 下的 java 文件。它不包括依赖项 JAR 文件。
  2. maven-assembly-plugin:此插件将所有依赖 JAR 提取到原始类中并将它们组合在一起。它还可以用于通过指定主类来构建可执行 JAR。它仅适用于依赖较少的项目;对于有很多依赖的大型项目,会导致Java类名冲突。
  3. maven-shade-plugin:将所有依赖打包到一个 uber-JAR 中。它还可以用于通过指定主类来构建可执行 JAR。这个插件特别有用,因为它合并了特定文件的内容,而不是被 relocating classes 覆盖。 .当 JAR 中存在同名的资源文件并且插件尝试将所有资源文件打包在一起时,需要这样做。

引用:comparison:maven plugin jar,assembly,shade

关于java - maven 插件之间的区别 ( assembly-plugins , jar-plugins , shaded-plugins ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38548271/

相关文章:

java.util.NoSuchElementException - 扫描仪读取用户输入

java - 使用Comparable查找最大/最小值

git - Maven 发布插件在 git 推送错误时显示明文密码

android - 跳过上载以丢失aar和pom文件

javascript - jQuery Grails 插件

ruby-on-rails - 如何将独立维护的 ruby​​ 脚本合并到 Rails 应用程序中

java - 如何在现有 JfreeChart 上方绘制蜘蛛图

javascript - Jbutton(ActionListener)可以启动静态方法吗?

java - 无法添加此项目,因为它不使用 Ant 脚本生成 JAR 文件

c++ - C++ 的 Eclipse 指标插件