Gradle should create a dependency files ala Ruby's Bundler/Cocoa-pods


(Phil Swenson) #1

I think that gradle should follow the pattern that cocoa-pods and ruby’s bundler has where a dependency file is created. this file lists all the dependencies and versions that are resolved.

right now you have to generate a dependency report, which means going through a (potentially) long build process to view the report. Also, if I want to view dependencies on each project I have to download the source and execute the report rather than just browse the reports in a web based UI (like github).

I guess this could be done by running the dependency report and piping to a file, however a bunch of output comes along with the report. So the gradle output before the dependency report would have to be parsed out.

The other issue is bundler and cocoa pods actually have the product working off the generated dependency files, so the user has to actually request updated dependencies. This is an interesting idea for gradle, I guess there are pros and cons. Definitely not how gradle works now though.

I like the idea of eventually having IDEs use a generated dependency file rather than having gradle generate the nasty/complex IDE project files. but again, this is a different approach that gradle currently takes.


(Attila Kelemen) #2

To get the list of dependencies you should use the Tooling API to fetch it. Once you have the dependencies, you may do whatever you want with it.

If you want to have your dependencies in a single file, then you can code your Gradle project to read the dependencies from it. Or write a task which generates such file (even plugin).


(Luke Daley) #3

@Phil: A new design spec was started recently around this area.

https://github.com/gradle/gradle/blob/master/design-docs/binary-integration.md

It’s a similar problem space, but not the same proposed solution. If you’re interested in contributing your ideas I suggest commenting on the doc in GitHub, or on the gradle-dev mailing list.