Gradle does now have a dependency on ASM and needed a newer version. This was conflicting with the one in Groovy-all and causing bugs.

Russel Winder wrote:
Adam,

I'm really not sure I see the rational here.  The primary difference
between groovy and groovy all is the ASM, Antlr, and Commons CLI being
embedded.  These are not dependencies of Gradle and it seems the build
requires multiple instances of mentioning them.  Doesn't this violate
DRY and lead to maintenance nightmare?

Some notes below.

Modified: gradle-core/trunk/build.gradle (1779 => 1780)
--- gradle-core/trunk/build.gradle      2009-08-21 03:36:57 UTC (rev 1779)
+++ gradle-core/trunk/build.gradle      2009-08-21 06:56:07 UTC (rev 1780)
@@ -147,7 +147,10 @@
userGuideStyleSheets 'docbook:docbook-xsl:1.7...@zip'

-    groovy module("org.codehaus.groovy:groovy-all:1.6.4") {
+    groovy module("org.codehaus.groovy:groovy:1.6.4") {
+        dependency("asm:asm-all:2....@jar")
+        dependency("antlr:antlr:2....@jar")
+        dependency("commons-cli:commons-cli:1...@jar")

Why should Gradle have to specify transitive dependencies of Groovy,
this is what Ivy should manage using the POMs.  It seems highly
inappropriate for Gradle to have to track Groovy data.

         module("org.apache.ant:ant:1.7.0") {
             dependencies("org.apache.ant:ant-junit:1....@jar", 
"org.apache.ant:ant-launcher:1....@jar")
         }
Modified:
gradle-core/trunk/src/samples/userguide/tutorial/groovyWithFlatDir/build.gradle 
(1779 => 1780)
--- 
gradle-core/trunk/src/samples/userguide/tutorial/groovyWithFlatDir/build.gradle 
    2009-08-21 03:36:57 UTC (rev 1779)
+++ 
gradle-core/trunk/src/samples/userguide/tutorial/groovyWithFlatDir/build.gradle 
    2009-08-21 06:56:07 UTC (rev 1780)
@@ -6,7 +6,10 @@
 }
dependencies {
-    groovy module(':groovy-all:1.6.0') {
+    groovy module(':groovy:1.6.0') {
+        dependency("asm:asm-all:2.2.3")
+        dependency("antlr:antlr:2.7.7")
+        dependency("commons-cli:commons-cli:1.2")

See above :-)

         dependency(':commons-cli:1.0')

You can't have both 1.0 and 1.2 of Commons CLI?  Anyway I thought Gradle
used JOpt Simple.


         module(':ant:1.7.0') {
             dependencies(':ant-junit:1.7.0:jar', ':ant-launcher:1.7.0')
Modified: gradle-core/trunk/subprojects/gradle-core/build.gradle (1779
=> 1780)
--- gradle-core/trunk/subprojects/gradle-core/build.gradle      2009-08-21 
03:36:57 UTC (rev 1779)
+++ gradle-core/trunk/subprojects/gradle-core/build.gradle      2009-08-21 
06:56:07 UTC (rev 1780)
@@ -3,8 +3,15 @@
 usePlugin 'groovy'
dependencies {
-    def ANT_GROOVY = ["org.apache.ant:ant:1....@jar", 
"org.apache.ant:ant-junit:1....@jar", "org.apache.ant:ant-launcher:1....@jar"]
-    groovy "org.codehaus.groovy:groovy-all:1....@jar", ANT_GROOVY
+    def GROOVY_DEPENDENCIES = [
+            "asm:asm-all:2....@jar",
+            "antlr:antlr:2....@jar",
+            "commons-cli:commons-cli:1...@jar",
+            "org.apache.ant:ant:1....@jar",
+            "org.apache.ant:ant-junit:1....@jar",
+            "org.apache.ant:ant-launcher:1....@jar"

See above.  This is the third mention of the same data and it is data
Groovy not Gradle should manage.

And then there is the Ant 1.7.1 issue ;-)

+    ]
+    groovy "org.codehaus.groovy:groovy:1....@jar", GROOVY_DEPENDENCIES
compile "commons-httpclient:commons-httpclient:3...@jar", "commons-codec:commons-codec:1...@jar", "org.slf4j:jcl-over-slf4j:1....@jar"


--
Steve Appling
Automated Logic Research Team

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

   http://xircles.codehaus.org/manage_email


Reply via email to