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"