Bob
Bob

Reputation: 8504

Reading Gradle build parameters

I have a Gradle project with subprojects that I can issue separate build commands if I don't want to build all the subprojects at once. For example,

parent
  subprojectA
  subprojectB
  subprojectC

I can then issue commands like ./gradlew :subprojectA:assemble :subprojectC:assemble. What I like to do is construct a meaning git tag from each subproject group and version values for those subprojects that are being built, i.e., group and version for only subprojectA and subprojectC in this case. I am thinking of writing a standalone plugin to do this but unsure where / how to get this information at build time. Any suggestions would be much appreciated.

Upvotes: 0

Views: 176

Answers (1)

Mark Vieira
Mark Vieira

Reputation: 13466

Both group and version (as well as any other project property) is available globally in your build script.

task myTask << {
    println group + "-" + version
}

If you are writing a binary plugin you can also access properties off the Project object itself via the property() method.

def group = project.property('group')

Edit

If you want to determine if a particular project is being built you can inspect the TaskExecutionGraph.

gradle.taskGraph.whenReady { graph ->
    if (graph.hasTask(':subprojectA:assemble')) {
        println 'Will build subprojectA'
    }
}

Upvotes: 1

Related Questions