根据Gradle 文档 https://docs.gradle.org/2.4/userguide/dependency_management.html(示例 50.27),我们可以将 S3 支持的 Maven 存储库与 Gradle 2.4 一起使用。但是,文档中给出的唯一示例将显式 AWS 凭证传递给 S3 存储库声明:
repositories {
maven {
url "s3://someS3Bucket/maven2"
credentials(AwsCredentials) {
accessKey "someKey"
secretKey "someSecret"
}
}
}
我需要做同样的事情,但我希望 Gradle 使用 AWS JDK 中的 DefaultAWSCredentialsProviderChain,而不是显式凭证。就像是:
repositories {
maven {
url "s3://someS3Bucket/maven2"
credentials(AwsCredentials) {
// Default AWS chain here?
}
}
}
这样,它会找到我为运行 Gradle 构建的 EC2 实例配置的实例配置文件凭证。
有办法做到这一点吗?或者,Gradle 是否只能使用构建文件中给出的显式凭据对 S3 进行身份验证?
更新版本的 Gradle 提供了内置方式 https://docs.gradle.org/current/userguide/repository_types.html#example_declaring_a_s3_backed_maven_and_ivy_repository_using_iam使用来自默认提供商链的凭据,例如:
maven {
url "s3://myCompanyBucket/maven2"
authentication {
awsIm(AwsImAuthentication) // load from EC2 role or env var
}
}
这避免了手动创建提供者链实例并传入凭证值的需要。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)