很抱歉我这个菜鸟提出的问题。
假设我有一个名为A的包,在其maven文件中声明了B和C作为依赖项。B和C使用两个不同的log4j版本进行日志记录。我有几个问题:
- 如果我使用maven,并将B和C声明为A的依赖项。当maven从mavencentral库拉取B、C的构件(.jar)时,B、C的jar文件是否包含log4j类文件或仅包含它们自己编译的文件(B、C自己的源代码,而不是依赖项)。
- 如果我理解正确,在构建结束时,将只有一个log4j类文件(即使B、C使用不同的log4j版本)。在此选择哪个log4j版本来构建?这是否意味着我需要在A的maven构建文件中也声明log4j作为A的依赖项,并选择要构建的版本。
- B,C可能使用完全不同的log4j版本。它们的API可能完全不同。这会在运行时引起问题吗?但实际上,这种情况非常罕见?为什么这样说?
谢谢。