在其他Gradle文件中按名称获取Gradle构建脚本存储库

在其他Gradle文件中按名称获取Gradle构建脚本存储库,gradle,build.gradle,build-script,Gradle,Build.gradle,Build Script,我的gradle项目结构如下: project │ gradle.properties │ build.gradle │ └───common-config │ common-buildscript.gradle │ common-java.gradle 文件内容: gradle.properties artifactory_user=username artifactory_password=password 通用构建脚本.gradle def pr

我的gradle项目结构如下:

project
│   gradle.properties
│   build.gradle    
│
└───common-config
    │   common-buildscript.gradle
    │   common-java.gradle
文件内容:

gradle.properties

artifactory_user=username
artifactory_password=password
通用构建脚本.gradle

def properties = new Properties()
file("../gradle.properties").withInputStream { properties.load(it) }

repositories {
    maven {
        url "someRepo1.com"
        credentials {
            username = properties.get("artifactory_user")
            password = properties.get("artifactory_password")
        }
        name = "Some Repo 1"
    }
    maven {
        url "someRepo2.com"
        credentials {
            username = properties.get("artifactory_user")
            password = properties.get("artifactory_password")
        }
        name = "Some Repo 2"
    }
}
apply plugin: "java"

repositories {
    add buildscript.repositories.getByName("Some Repo 1")
    add buildscript.repositories.getByName("Some Repo 2")
}
通用java.gradle

def properties = new Properties()
file("../gradle.properties").withInputStream { properties.load(it) }

repositories {
    maven {
        url "someRepo1.com"
        credentials {
            username = properties.get("artifactory_user")
            password = properties.get("artifactory_password")
        }
        name = "Some Repo 1"
    }
    maven {
        url "someRepo2.com"
        credentials {
            username = properties.get("artifactory_user")
            password = properties.get("artifactory_password")
        }
        name = "Some Repo 2"
    }
}
apply plugin: "java"

repositories {
    add buildscript.repositories.getByName("Some Repo 1")
    add buildscript.repositories.getByName("Some Repo 2")
}
运行gradle clean build时,出现以下错误:

A problem occurred evaluating script.
> Repository with name 'Some Repo 1' not found.
似乎在common java.gradle中,gradle无法在common buildscript.gradle中检测到“Some Repo 1”名称。但是,如果我将两个文件的内容放在同一个build.gradle中,这将起作用

def properties = new Properties()
file("../gradle.properties").withInputStream { properties.load(it) }

repositories {
    maven {
        url "someRepo1.com"
        credentials {
            username = properties.get("artifactory_user")
            password = properties.get("artifactory_password")
        }
        name = "Some Repo 1"
    }
    maven {
        url "someRepo2.com"
        credentials {
            username = properties.get("artifactory_user")
            password = properties.get("artifactory_password")
        }
        name = "Some Repo 2"
    }
}
apply plugin: "java"

repositories {
    add buildscript.repositories.getByName("Some Repo 1")
    add buildscript.repositories.getByName("Some Repo 2")
}
我之所以要这样做,是因为我想将公共构建脚本应用于repos中的许多其他构建脚本

请告诉我如何解决这个问题。多谢各位

更新

def properties = new Properties()
file("../gradle.properties").withInputStream { properties.load(it) }

repositories {
    maven {
        url "someRepo1.com"
        credentials {
            username = properties.get("artifactory_user")
            password = properties.get("artifactory_password")
        }
        name = "Some Repo 1"
    }
    maven {
        url "someRepo2.com"
        credentials {
            username = properties.get("artifactory_user")
            password = properties.get("artifactory_password")
        }
        name = "Some Repo 2"
    }
}
apply plugin: "java"

repositories {
    add buildscript.repositories.getByName("Some Repo 1")
    add buildscript.repositories.getByName("Some Repo 2")
}
build.gradle内容:

buildscript {
    ext {
        commonConfig = rootProject.projectDir.absolutePath
    }
    apply from: "${commonConfig}/common-config/common-buildscript.gradle", to: buildscript
}

apply from: "${commonConfig}/common-config/common-java.gradle"

如何调用您的common-buildscript.gradle和common-java.gradle文件,以何种闭包和顺序?@M.OğuzÖzcan更新了build.gradle文件内容。我首先在
buildscript
块中应用
common buildscript.gradle
。然后在外部,我应用
common java.gradle
如何调用您的common-buildscript.gradle和common-java.gradle文件,以哪个闭包和顺序?@M.OğuzÖzcan更新了build.gradle文件内容。我首先在
buildscript
块中应用
common buildscript.gradle
。然后在外部应用
common java.gradle