Hi @abagshaw,
The Configuration
API is “historically grown” and used for different purposes now. What you do is fine for the case you describe.
In Gradle core, the pattern we now use is to use inheritance to “collect” dependency declarations from other configurations that act as “dependency buckets”. Artifacts are only added to “consumable configurations”. See for example the setup in the java-library plugin:
https://docs.gradle.org/current/userguide/java_library_plugin.html#sec:java_library_configurations_graph
And this general description of the “three types” of configurations we now have:
https://docs.gradle.org/current/userguide/declaring_dependencies.html#sec:resolvable-consumable-configs
One aspect here is that we only attach aritfacts to configurations if they are “published” (i.e. used/consumed by other projects/modules).
Our of curiosity: What is your use case to use configurations with aritfacts and inheritance?