在其他Gradle文件中按名称获取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
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