我目前正在尝试使用maven模块结构。 目前我有以下结构:
login(request,user)
其中A取决于B而B取决于C和A,B,C是单独的maven模块。
B是否可能以某种方式掩盖其对C的依赖性,以便A不能直接调用公共函数或从C实例化对象?
答案 0 :(得分:3)
您可以将B对C的依赖关系标记为<optional>true</optional>
。这将阻止Maven传递地解析这种依赖关系,因此A不会过渡依赖于C.这意味着当构建A时,它根本不会在其类路径上有C,除非A定义了对C的显式依赖。
当然,如果A定义了对C的显式依赖,Maven将添加它。 Maven是一个构建工具,而不是一个可以阻止A显式访问C的安全框架。
此外,<scope>provided<scope>
具有不同的含义,但在传递依赖关系方面的工作方式类似。