Gradle multi-project, change default build filename (build.gradle)
Asked Answered
M

2

6

We have a multiproject with a settings.gradle and no build.gradle in the root project.

The default behaviour of gradle is just look up the settings.gradle file on the top dir and read the build.gradle for every project defined before.

My problem is: depending on the environment where the multiproject has been checked out, I want to run as default "build2.gradle" instead of "build.gradle" when running a build from the root project.

What is the best way to do it??

Thanks

Minier answered 3/9, 2012 at 10:40 Comment(0)
M
3

ok, done...

In settings.gradle:

String myFileName = "build2.gradle"

rootProject.buildFileName = myFileName
rootProject.children.each { project ->
    project.buildFileName = myFileName
    assert project.projectDir.isDirectory()
    assert project.buildFile.isFile()
}
Minier answered 3/9, 2012 at 12:39 Comment(0)
R
3

Or for nested multiproject in settings.gradle:

setBuildFileName(rootProject)

def setBuildFileName(project) {
    project.children.each { childProject ->
    childProject.buildFileName = "${childProject.name}.gradle"
    assert childProject.projectDir.isDirectory()
    assert childProject.buildFile.isFile()
    setBuildFileName(childProject)
  }
}
Reciprocation answered 9/4, 2013 at 13:52 Comment(1)
I think this is useful. Reading the user guide, I thought that this would be coming out-of-the-box from gradle, but it didn't. Please correct me if I am mistaken. docs.gradle.org/current/userguide/… 8.1Spae

© 2022 - 2024 — McMap. All rights reserved.