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

Reply via email to