【问题标题】:Add single dependency package to maven artifact将单个依赖包添加到 Maven 工件
【发布时间】:2016-10-19 11:23:59
【问题描述】:

给定一个示例依赖定义为:

<dependency>
    <artifactId>commons-lang</artifactId>
    <groupId>commons-lang</groupId>
    <version>2.4</version>
</dependency>

是否可以将单个包从该依赖项(例如 org.apache.commons.lang.math)添加到最终的 jar 包中?

【问题讨论】:

  • 你的用例是什么?你想达到什么目标?因为简单的答案是:你不能(轻易地)这样做。
  • 输出的 jar 文件将单独使用,因此它需要包含一些依赖类。而且我不想包含所有项目依赖项,因为其中一些无关紧要,只是占用磁盘空间。
  • 所以您正在制作一个包含项目的一些依赖项的最终程序集,而对于commons-lang,您想去掉其中的一些包吗?如果您担心磁盘空间,只需在 Assembly Plugin 中包含相关依赖项(在 dependency set 中包含您想要的内容)。删除软件包不会获得太多磁盘空间收益,而且可能会导致奇怪的错误(如果您保留一个软件包,但事实证明它依赖于另一个软件包怎么办?)

标签: java maven package


【解决方案1】:

您可以使用 shade maven 插件为您的应用程序创建 fat jar。

Shade 插件可以自动移除所有项目不使用的依赖类。

请查看 shade projekt 中的示例,可能对您有用: https://maven.apache.org/plugins/maven-shade-plugin/examples/includes-excludes.html

【讨论】:

    猜你喜欢
    • 2019-09-03
    • 2010-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-24
    • 2012-11-28
    • 2016-03-31
    • 2012-10-11
    相关资源
    最近更新 更多