Hello all! I've been working here and there on making each Geode module's dependencies explicit. Some previous discussion can be found in the archives [1].
My current question surrounds the structure of POMs in specifying version information. Gradle supports `dependency constraints` to unify library versioning. This seems to me to be a clean, concise alternative to our current approach of cluttering the project property space with project.'library.version', with mixed adherence throughout our build files. Currently, the Gradle documentation claims that "Dependency constraints are not yet published, but that will be added in a future release. This means that their use currently only targets builds that do not publish artifacts to maven or ivy repositories." [2] However, investigating it now, it appears that our produced pom.xml does include version constraint information, but as <depedencyManagement> sections rather than with each dependency's <version> tag. What is the meaningful distinction between specifying version information in a <dependencyManagement> rather in the dependency information itself? Are these equivalent in practice? Is one preferred in general? Please see a recent [Discuss] tagged pull request for an example. [3] Thanks. Imagination is Change. ~ Patrick [1] https://markmail.org/message/7rnrgcidsiuygqo6 [2] See first highlighted star-sparkle box. https://docs.gradle.org/current/userguide/managing_transitive_dependencies.html [3] https://github.com/apache/geode/pull/2795