-
Notifications
You must be signed in to change notification settings - Fork 9.2k
HADOOP-19503. Use jackson-bom to set jackson versions #8074
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: trunk
Are you sure you want to change the base?
Conversation
|
💔 -1 overall
This message was automatically generated. |
|
the main thing we need to do with aggregate imports is be confident that when a hadoop-* module imports a dependency d, and d depends on jackson-something, then our choice of jackson artifacts overrides whatever version of jackson-something that artifact d declared. And that is, well, tricky. If some hadoop module says I depend on jackson-bom 2.18 and so we get 2.18 jackson-core that way, it is coming in transitively, one two levels down the tree. If something downstream pulls in hadoop-common and a different jackson-core artifact, whether that different one comes in or not depends on depth down the tree which the artifact was declared (closest to root resolution, not newest version). That doesn't mean it's bad, only that it has consequences in version resolution, consequences which may surface downstream. Note: maven 4 has explicit BOM artifacts; no idea what they bring here. |
I don't think replacing the explicit dependency management entries with the imported BOM has any effect on downstream projects. The BOM itself does not get added as a parent of the jackson artifacts. AFAIU importing the bom is equivalent to copying its dependencyManagement entries the dependencyManagement section, the hadoop artifacts will still have the same dependencies at the same level as before. I have run dependency:tree on trunk and with this patch. |
Description of PR
Use jackson-bom to set jackson versions.
This simplifies the build config, and also ensures that possible implicit transitive sub-modules
are also dependency managed to the same version.
How was this patch tested?
CI
Compared dependency:list output pre- and post-patch
For code changes:
LICENSE,LICENSE-binary,NOTICE-binaryfiles?