当Android Studio中创建了一个项目,顶级构建文件有两个仓库的定义,一个内部buildscript和其他内部allprojects.
// Top-level build file where you can add configuration options common to all sub- projects/modules.
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.9.+'
}
}
allprojects {
repositories {
mavenCentral()
}
}
Run Code Online (Sandbox Code Playgroud)
我必须在添加其他存储库,为什么?
我觉得这里面buildscript库是在这里添加gradle这个插件的依赖,但我不知道...
请有人澄清我.
谢谢!
我正在尝试从 Fabric 迁移到 Firebase,因为 Fabric 在 2020 年 3 月 31 日之后将不再可用。
我已经完成了第一步:向 gradle 添加插件和依赖项、添加分析 json 文件,甚至崩溃报告,所有这些似乎都是正确的,因为我可以在 Firebase 控制台中看到数据(分析和崩溃)。
但我没有那么幸运将应用程序分发系统从 Beta+Fastlane 迁移到 Firebase。我正在尝试选项“使用 Gradle 将 Android 应用程序分发给测试人员”。我已经添加了插件和依赖项,并且添加得很好,因为我可以运行 gradle 任务./gradlew appDistributionUploadMyVariant
。
我serviceCredentialsFile
从 Google Cloud Platform 控制台获取名为firebase-adminsdk
(我认为这个名称是由 Firebase 系统给出的)的用户的正确项目。用户的电子邮件是这样的,与我在Firebase 控制台 -> 设置 -> 服务帐户 -> Firebase Admin SDKfirebase-adminsdk-xxx@my_project.iam.gserviceaccount.com
中看到的相同。
我已经下载了带有凭据的 json 文件,并且 gradle 可以找到它,因为如果故意为文件输入错误的路径 URL,它会记录一个Service credentials file does not exist
. 根据我上面提到的一些行,该文件的内容具有正确的 和 值client_email
。project_id
但我收到 403 错误。我粘贴了执行任务时获得的一些信息./gradlew …
android gradle firebase google-fabric firebase-app-distribution
我开始使用Jenkins,SCM,Nexus和Android-Gradle进行持续改进.我在Gradle中有一个任务是将AAR文件上传到我的Nexus存储库,如果我从我的计算机执行它,它就可以找到它.任务是' install ',gradle-code如下:
// upload to our nexus repository
uploadArchives {
repositories {
// the maven plugin features this deployer
mavenDeployer {
// we deploy to the release repository in this case
repository(url: "https://nexus1.xxxxx.com/nexus/content/repositories/releases") {
authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
}
// pom project information
pom.project {
version android.defaultConfig.versionName
artifactId 't21-android-commons-utils'
name 'T21 Android Commons Utils Lib'
packaging 'aar'
}
}
}
}
task install(dependsOn: uploadArchives)
Run Code Online (Sandbox Code Playgroud)
身份验证函数调用getRepositoryUsername()和getRepositoryPassword()以从gradle.properties读取凭据.但我不想在我们的SCM中公开这个文件,它应该不安全.
当我将代码推送到我们的SCM时,Jenkins注意到它并执行一项工作来完成一些gradle-task,包括' install '.它工作正常但" 安装 "无法向Nexus服务器进行身份验证,因为找不到gradle.properties(正如预期的那样).
所以,我想知道我应该怎么做"认证 …