HTTP/1.1 401 Unauthorized when uploading binary on bintray
HTTP/1.1 401 Unauthorized when uploading binary on bintray
我正在尝试从 android 工作室上传一个 android 库模块,
接下来是这个博客:https://inthecheesefactory.com/blog/how-to-upload-library-to-jcenter-maven-central-as-dependency/en
(1)
./gradlew install
结果:- 构建成功
(2)
./gradlew build bintrayUpload
结果:- 低于错误-
失败:构建失败,出现异常。
- 出了什么问题:
任务 ':acr:bintrayUpload' 执行失败。
Could not create version '1.0.0': HTTP/1.1 401 Unauthorized [message:This resource requires authentication]
我检查了很多次,确定我的用户名和 apikey 是正确的。
(在用户名中,我使用组织名称而不是 bintray 用户名,因为我的存储库是在组织下创建的)。
如果有人有想法,我将不胜感激:)
在 Bintray 中,您的用户名必须是您的用户帐户的用户名,而不是组织的用户名。
如果您是 repo 的所有者,那么权限机制将允许该操作。
In username i'm using organization name
一些文档链接:
https://github.com/bintray/gradle-bintray-plugin#readme
https://bintray.com/docs/usermanual/formats/formats_mavenrepositories.html#_working_with_gradle
编辑:
确保您使用的是 userOrg 参数,因为您的存储库位于组织主题下而不是用户下。
这是一个有效的 build.gradle:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7'
}
}
plugins {
id "com.jfrog.bintray" version "1.7"
}
apply plugin: 'com.jfrog.bintray'
apply plugin: 'java'
bintray {
user = 'myuserusername'
key = '**********'
pkg {
repo = 'gradlerepo'
name = 'gradlepackage'
userOrg = 'myorgname'
version {
name = '1.0-Final'
}
}
}
我想在@gba 的回答中添加更多内容
与其直接包含您的 bintray 用户名和 apikey,不如将它们包含在项目根目录下的 local.properties 文件中。 local.properties 文件默认添加到 .gitignore,因此不会与其他文件一起上传到 githup。它有助于保护您的用户名和 apikey 安全。
bintray.user=<your bintray username>
bintray.apikey=<your bintray apikey>
然后在你的模块 gradle 文件中添加:
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
bintray {
user = properties.getProperty("bintray.user")
key = properties.getProperty("bintray.apikey")
configurations = ['archives']
pkg {
repo = "maven"
name = "<Your library name>"
websiteUrl = <your siteUrl>
vcsUrl = gitUrl
licenses = ["Apache-2.0"]
publish = true
}
}
参考:https://www.virag.si/2015/01/publishing-gradle-android-library-to-jcenter/
我正在尝试从 android 工作室上传一个 android 库模块, 接下来是这个博客:https://inthecheesefactory.com/blog/how-to-upload-library-to-jcenter-maven-central-as-dependency/en
(1)
./gradlew install
结果:- 构建成功
(2)
./gradlew build bintrayUpload
结果:- 低于错误-
失败:构建失败,出现异常。
- 出了什么问题:
任务 ':acr:bintrayUpload' 执行失败。
Could not create version '1.0.0': HTTP/1.1 401 Unauthorized [message:This resource requires authentication]
我检查了很多次,确定我的用户名和 apikey 是正确的。 (在用户名中,我使用组织名称而不是 bintray 用户名,因为我的存储库是在组织下创建的)。 如果有人有想法,我将不胜感激:)
在 Bintray 中,您的用户名必须是您的用户帐户的用户名,而不是组织的用户名。 如果您是 repo 的所有者,那么权限机制将允许该操作。
In username i'm using organization name
一些文档链接:
https://github.com/bintray/gradle-bintray-plugin#readme
https://bintray.com/docs/usermanual/formats/formats_mavenrepositories.html#_working_with_gradle
编辑: 确保您使用的是 userOrg 参数,因为您的存储库位于组织主题下而不是用户下。
这是一个有效的 build.gradle:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7'
}
}
plugins {
id "com.jfrog.bintray" version "1.7"
}
apply plugin: 'com.jfrog.bintray'
apply plugin: 'java'
bintray {
user = 'myuserusername'
key = '**********'
pkg {
repo = 'gradlerepo'
name = 'gradlepackage'
userOrg = 'myorgname'
version {
name = '1.0-Final'
}
}
}
我想在@gba 的回答中添加更多内容
与其直接包含您的 bintray 用户名和 apikey,不如将它们包含在项目根目录下的 local.properties 文件中。 local.properties 文件默认添加到 .gitignore,因此不会与其他文件一起上传到 githup。它有助于保护您的用户名和 apikey 安全。
bintray.user=<your bintray username>
bintray.apikey=<your bintray apikey>
然后在你的模块 gradle 文件中添加:
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
bintray {
user = properties.getProperty("bintray.user")
key = properties.getProperty("bintray.apikey")
configurations = ['archives']
pkg {
repo = "maven"
name = "<Your library name>"
websiteUrl = <your siteUrl>
vcsUrl = gitUrl
licenses = ["Apache-2.0"]
publish = true
}
}
参考:https://www.virag.si/2015/01/publishing-gradle-android-library-to-jcenter/