首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何排除带有maven程序集插件提供的作用域的传递依赖关系?

如何排除带有maven程序集插件提供的作用域的传递依赖关系?
EN

Stack Overflow用户
提问于 2018-04-11 21:03:24
回答 1查看 1.5K关注 0票数 1

我需要创建一个具有依赖关系的jar。我正在使用maven assemply插件3.1.0。

我想:

  • 包含范围compile和那个的依赖项,
  • 排除范围为provided的依赖项。

在下面的情况下,如mvn dependency:tree所示

代码语言:javascript
复制
[INFO] +- com.jayway.jsonpath:json-path:jar:2.2.0:compile
[INFO] |  +- net.minidev:json-smart:jar:2.2.1:compile
[INFO] |  |  \- net.minidev:accessors-smart:jar:1.1:compile
[INFO] |  \- org.slf4j:slf4j-api:jar:1.7.16:provided

我想在最后的jar中包括json-pathjson-smartaccessors-smart,而不是slf4j-api

使用默认的jar-with-dependencies描述符,slf4j-api也包含在生成的jar中。

[1]这是故意的行为吗?这似乎与其他maven解决方案相矛盾。

2/什么是允许获得我想要的东西的程序集描述符?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-15 18:37:30

因此,它似乎只是不适用于程序集插件,直到解释了为什么不是,我相信它是一个bug:https://issues.apache.org/jira/browse/MASSEMBLY-883

我创建了一个最小的项目来演示这个问题:https://github.com/fanf/test-maven-assembly

解决方案是使用阴影插件(https://maven.apache.org/plugins/maven-shade-plugin),它正确地排除了作用域provided的传递依赖关系(并且可以做比assembly插件更多的关于uber-jar的事情)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49784429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档