eastwater
eastwater

Reputation: 5640

Gradle how to make configuration variables

Gradle: define a configuration foo as following:

task fooJar(type: Jar) {
    ...
}

configurations {
    foo.extendsFrom("compile")
}

artifacts {
    foo fooJar
}

How to write if configuration name is a variable? For example,

['foo', 'bar'].each {

    task "${it}Jar"(type: Jar) {
       ....
    }

    configurations {
        "$it".extendsFrom("compile")
    }

    artifacts {
        "$it" tasks["${it}Jar"]
    }

}

UPDATE after answer:

The 2nd part: adding artifact:

artifacts.add(config, tasks["${it}Jar"])

Error:

> Could not find method add() for arguments [configuration 'foo', task 
'fooJar'] on object of type 
org.gradle.api.internal.artifacts.dsl.DefaultArtifactHandler.

Upvotes: 0

Views: 473

Answers (1)

lance-java
lance-java

Reputation: 28071

@see ConfigurationContainer which is returned by Project.getConfigurations()

eg

Configuration config = configurations.create(it)
config.extendsFrom configurations.getByName('xxx')

Upvotes: 1

Related Questions