I write quite a bit with wooden pencils: for the most part, I use them to take notes during lectures (in my standard atrocious handwriting) but also to annotate printed out papers as I read them, or to sketch out ideas in a notebook. Occasionally, I draw, though unfortunately not...

Gradle only natively supports a few dependency metadata formats. Tools like component metadata rules, ivy pattern layouts, and component version listers can be combined to handle metadata and repositories in other formats in a way Gradle can understand.

Gradle’s artifact transform system lets you transform artifacts based on their attributes. However, using it often means running into some common pitfalls, as how artifact transforms work can be unintuitive.

Once Gradle resolves variants, it locates artifact associated with those variants. However, since Gradle’s support for Maven-style dependencies involving classifiers has some potentially unpleasant consequences in this process, Gradle has some of its own solutions to the same problem.

If you’ve ever worked with Gradle (a build tool primarily targeted at Java or Android environments), you’ve likely used dependencies. And if you’ve ever used other Java-focused build tools, such as Maven, you’ll likely have noticed that dependencies in Gradle can be much more complex! Configurations? Variants? Attributes? What all...