【问题标题】:Maven private dependenciesMaven 私有依赖
【发布时间】:2013-10-17 18:39:31
【问题描述】:

有没有办法为其他人不可见的项目指定私有依赖项?

我想要达到的效果与排除功能非常相似,但略有不同 - 用户根本不应该意识到这种依赖关系,因此不必明确使用此排除。

如果这是不可能的(这很可能是真的),那么有什么特别的原因吗?

【问题讨论】:

  • 我不确定你想要达到什么目的。当你说private dependencies 时,你的意思是jar's 你写了..?
  • 对您的依赖项使用provided 范围是否满足您的要求?使用这个范围意味着依赖“仅在编译和测试类路径上可用,并且不可传递”。 maven.apache.org/guides/introduction/…
  • @user2339071 是的,“自制”罐子或一些第三方库。
  • @DB5 你是对的 - 提供的范围几乎可以完成排除的作用。
  • 正如问题所写,providedoptional 都不符合要求。 OP 既不询问应用程序容器提供的依赖项,也不询问仅有时可用的依赖项。问题文本是关于随模块分发但对客户端不可见的依赖项。

标签: java maven dependencies build-process


【解决方案1】:

可选的依赖听起来像你想要的。将依赖项标记为optional,您将在构建时拥有它,但用户不会自动将该库包含为传递依赖项。

更多详情请见Maven - Optional Dependencies and Dependency Exclusions

'provided' 在这里并不是理想的解决方案;这意味着需要一个依赖项,但是它将由您的工件的任何用户提供。 'optional' 表示依赖项仅对某些功能是必需的。

【讨论】:

  • 正如问题所写,providedoptional 都不符合要求。 OP 既不询问应用程序容器提供的依赖项,也不询问仅有时可用的依赖项。问题文本是关于随模块分发但对客户端不可见的依赖项。
猜你喜欢
  • 2021-12-07
  • 2019-02-20
  • 1970-01-01
  • 1970-01-01
  • 2011-04-22
  • 2019-09-02
  • 2021-11-24
相关资源
最近更新 更多