On 22/06/10 4:45 AM, Meikel Brandmeyer wrote:
Hi,

Am 21.06.2010 um 08:43 schrieb Adam Murdoch:

There's really only the following lifecycle tasks at the moment:
* clean
* check
* assemble
* build

Arguably classes and test should be included in this list too.
+1

I'm the author of clojuresque (a gradle plugin for Clojure support). And 
classes and test not being generally available is a slight annoyance, because I 
have to suck in the Java plugin where it is not necessary.

The Groovy and Scala plugins have the same problem. Also the War and Antlr plugins have to drag in the Java plugin for similar reasons.

It would be good to make the Java, Groovy, Scala and Clojure (and any other jvm language) plugins all peers, rather than treating Java (the language) as a special case, where the other plugins all have to 'extend' the Java plugin.

One option would be to extract a common base plugin out of the Java plugin, which would be shared by all the jvm language plugins. This base plugin would add in the main and test source sets, plus the test and jar tasks. This would mean that tasks such as 'classes', 'testClasses', 'test', and so on would be available without having to apply the java plugin.

An implication of this change is that projects which use multiple languages, say, Java and Groovy, would have to apply both the groovy and the java plugins, whereas at the moment they can just apply the groovy plugin. This isn't necessarily a bad thing, though. I think I prefer having to declare all the language I want to use.


--
Adam Murdoch
Gradle Developer
http://www.gradle.org
CTO, Gradle Inc. - Gradle Training, Support, Consulting
http://www.gradle.biz


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

   http://xircles.codehaus.org/manage_email


Reply via email to