Hi Adam,

On Aug 29, 2008, at 8:50 AM, Adam Murdoch wrote:



Hans Dockter wrote:
Hi,

I would like to share my ideas on the future modularization of Gradle (if possible implemented for 1.0).

- A very small core jar which has only one dependency on slf4j. No build-in tasks. Other projects can use this in an embedded way for whatever reason they need an api for dependency based programming. Jars with plugins and Tasks can be programatically added. - A groovy decorated version of the core jar, with the same use case as above but more convenient to use if people want to pay the dependency and performance penalty. - A very small Java only stand alone version of Gradle. It has folders where you can just place build script engines and plugin jars which are then automatically picked up. - A Groovy and Java build script engine (with an own Java Ant Builder).


This is a good plan.

Personally, I'd like to be able to download a small gradle distribution which then downloads the bits I need, in slightly finer grained chunks than the wrapper does (In fact, the solution could be to change the wrapper so it can download stuff from an ivy repository).

In order to add things like reporting to the plugins, currently we have to add jars to gradle's lib directory. I'm reluctant to keep just adding jars here.

I completely agree. One of the responsibilities of our future plugin system will be to deal with plugin specific libs. Then in the gradle lib dir we will only have the dependencies of gradle-core. Also the build script engines will have there own libs.

Fetching them from a repository somewhere if I happen to use the java plugin would be a much nicer situation.

The question were those libs should come from is independent of being modular I think. It is a matter of taste. With the new plugin system it should be definitely possible to download plugins on demand. I'm not sure if it is a good idea to ship our core plugin's without the libs, although our plugin system should be able to solve this use case. Just yesterday I could not build Gradle because the JavaProject integration test was stalled as the Maven repo was not responding. This went on for hours. I finally refactored the JavaProject to use local libs.

I don't feel strong about this. But in contrast to Maven it should be easy for implementors to bundle the libs directly.

- Hans

--
Hans Dockter
Gradle Project lead
http://www.gradle.org





---------------------------------------------------------------------
To unsubscribe from this list, please visit:

   http://xircles.codehaus.org/manage_email


Reply via email to