如何禁止访问依赖项的依赖项

时间:2016-06-29 12:18:10

标签: java maven module dependencies

我目前正在尝试使用maven模块结构。 目前我有以下结构:

login(request,user)

其中A取决于B而B取决于C和A,B,C是单独的maven模块。

B是否可能以某种方式掩盖其对C的依赖性,以便A不能直接调用公共函数或从C实例化对象?

1 个答案:

答案 0 :(得分:3)

您可以将B对C的依赖关系标记为<optional>true</optional>。这将阻止Maven传递地解析这种依赖关系,因此A不会过渡依赖于C.这意味着当构建A时,它根本不会在其类路径上有C,除非A定义了对C的显式依赖。

当然,如果A定义了对C的显式依赖,Maven将添加它。 Maven是一个构建工具,而不是一个可以阻止A显式访问C的安全框架。

此外,<scope>provided<scope>具有不同的含义,但在传递依赖关系方面的工作方式类似。