Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to define repositories for all subprojects in Gradle

I am writing Gradle scripts to build a lot of projects. They are using the same repositories so I would like to define repositories for all of my sub-projects instead of defining in each of them. So I try to move the repositories definition from the build.gradle in an individual project into the build.gradle in their parent folder.

subprojects{
    repositories{
        mavenCentral()
        flatDir{
            name 'uploadRepository'
            dirs '../../sharedlib'
        }
    }
}

However, the sub-projects can't find the repository definition at all. Moving other configurations in subprojects closure work. I've tried dependencies and properties configuration. They all work with no problem. I don't know why repositories work differently. When Googling, I can't find any example of putting repositories inside subprojects, I suspect I am doing it the wrong way. Please tell me what's wrong. Thanks!

like image 679
user1695166 Avatar asked Nov 12 '22 05:11

user1695166


1 Answers

I finally figured out what the problem was. Originally, I missed the settings.gradle in the parent folder. (I don't know why dependencies configuration works even without this file) After I put that in, the sub-projects could find the repositories, but the dependencies and an one property (sourceCompatibility=1.5) I defined in the parent project no longer works. I have to move the apply plugin:'war' from the subproject's build.gradle to the parent's subprojects{...} I figure that's because the dependencies and sourceCompatibility are things provided by the plugin. And somehow Gradle doesn't look into the subproject's script to find the plugin first.

like image 163
user1695166 Avatar answered Nov 15 '22 11:11

user1695166