I try to get Gradle 2.7 to resolve dependencies for a language that is not supported yet. So I use only very basic constructs. Dependencies are fetched, but not transitive dependencies, I need some help. I demonstrate this with three projects: leaf, tree, and forest:
The leaf project build.gradle
:
plugins {
id 'base'
id 'maven-publish'
}
group = 'org.martin'
version = '0.1.0'
task sourceZip(type: Zip) {
from 'src'
}
publishing {
publications {
source(MavenPublication) {
artifact(sourceZip) {
}
}
}
}
publishing {
repositories {
maven {
url '/tmp/localRepository'
}
}
}
I publish this project with: ./gradlew publish
Then the tree project, which lists the leaf artifact as a dependency in its build.gradle
:
plugins {
id 'base'
id 'maven-publish'
}
repositories {
maven {
url '/tmp/localRepository'
}
}
configurations {
srcCode
}
dependencies {
srcCode 'org.martin:leaf:0.1.0'
}
group = 'org.martin'
version = '0.1.0'
task sourceZip(type: Zip) {
from 'src'
}
publishing {
publications {
source(MavenPublication) {
artifact(sourceZip) {
}
}
}
repositories {
maven {
url '/tmp/localRepository'
}
}
}
I publish this project’s artifact with: ./gradlew publish
Lastly, the forest project build.gradle
file which lists the tree artifact as a dependency:
plugins {
id 'base'
id 'maven-publish'
}
repositories {
maven {
url '/tmp/localRepository'
}
}
configurations {
srcCode
}
dependencies {
srcCode 'org.martin:tree:0.1.0'
}
When I type ./gradlew dependencies
in the forest project, it only lists the first dependency, and it is missing the transitive dependency. I expect to see both the leaf and the tree dependencies:
:dependencies
------------------------------------------------------------
Root project
------------------------------------------------------------
archives - Configuration for archive artifacts.
No dependencies
default - Configuration for default artifacts.
No dependencies
srcCode
\--- org.martin:tree:0.1.0
BUILD SUCCESSFUL
Q1: Is it possible to make dependency resolution work if the language is not supported yet?
Q2: How can I change my example to make it work?
Q3: I have read that if I add extensions, it disables dependency resolution, but if I add a classifier, will it disable dependency resolution?
Thanks.