当前位置: 首页 > article >正文

Android MavenCentral 仓库更新问题

MavenCentral 仓库更新问题

  • 前言
  • 正文
    • 一、Maven central repository的账户迁移
    • 二、获取加密账户信息
    • 三、问题和解决方式
      • ① 问题1
      • ② 解决1
      • ③ 问题2
      • ④ 解决2

前言

  在去年的3、4月份的时候我发布了一个开源库EasyView,在MavenCentral上,可以说当时发布的时候就遇到过很多问题,发布的难度远超在jitpack上发布库,随着发布之后一些开发者的使用和提出的建议,我对库进行了一些优化,优化之后就是库的版本更新了,于是就有了我下面要讲的内容。

正文

  解决问题的过程是充满心酸的过程,关键点在于方向上的不同,同一个问题去找的时候大部分都是IDEA的maven的配置,都是关于Java的,我大Android要亡了吗?并没有,随着我的不断尝试,于是找到了一个可行的方法,下面我先介绍一些事情的前因后果。

一、Maven central repository的账户迁移

  主要原因是几段英文,我简单翻译一下,你简单看一下子,如下所示:

  我们(中央团队)希望让发布商了解进一步的更改 添加到帐户管理流程。作为我们不断努力实现现代化的一部分 我们的流程和提高我们可以为出版商提供的安全性,我们 已将 通过 创建的现有用户帐户导入到 Account Management Service 中,该服务将 中央发布者门户。这项工作对大多数人来说是透明的 的出版商,但在某些情况下需要 出版商。我们已提前通过电子邮件进行沟通,但此通知 希望能为有疑问的人提供额外的澄清。

  我们的文档已被 已更新,以指示以前管理账户的流程 通过 OSSRH 帐户管理门户进行管理(在此之前)。需要注意的是,虽然 现在,每个账户都通过 https://central.sonatype.com 进行管理,从而创建一个新的 account 不一定授予对 OSSRH 服务器进行发布的访问权限。自 请求该访问权限,您需要按照旧版 OSSRH 的说明进行操作 出版商。访问 将授予当前无法使用 Central Publisher 的用户 门户。

  以前,我们允许使用用户的用户名和密码进行发布。我们 强烈建议使用用户令牌,因为它们是更安全的 认证。随着新的账户管理更改,这将从 强烈推荐要求。此更改的原因是 新系统的技术限制。我们理解这将导致 对我们的一些出版商来说,虽然有轻微的干扰,但我们希望 结果对每个人来说都是一个更好的过程。

  总结一下就是:账户的用户名和密码信息进行了安全加密,在仓库的发布和更新时将需要使用加密后的账户和信息。

  到这里你有没有明白是什么意思?不明白没有关系,下面我们先获取加密后的账户和信息。

二、获取加密账户信息

  首先需要登录 MavenCentral Repository,然后在用户信息哪里点击你的用户名出现的弹窗有两项,ProfileLogout,点击Profile,点击Profile页面。

在这里插入图片描述

  然后点击下拉选择User Token,进入User Token页面,这里面你可以访问和重置User Token

在这里插入图片描述
  点击 Access User Token,将会验证你的账号和密码,验证之后会出现一个一分钟后关闭的小弹窗,里面就有你的加密后的账户和密码,如下图所示:

在这里插入图片描述
这个信息保存之后放到gradle.properties中,如下所示:

ossrhToken=yourUsername
ossrhTokenPassword=yourPassword

  两个值自行替换掉,注意将这个gradle.properties文件添加到git忽略,这两个值替换成你加密后的账号和密码,意思就是你的账号的密码在项目中不明文显示,ossrhTokenossrhTokenPassword将在下面的解决问题中用到。

三、问题和解决方式

① 问题1

在这里插入图片描述

Cannot perform signing task ':easy:signMavenPublication' because it has no configured signatory

  这个问题是我当时什么都没改动的情况下直接打算publishMavenCentral 上报的错,意思就是没有配置签名。

② 解决1

  然后我的解决方式是在我的easy模块下的build.gradle中的signing{} 闭包下添加一行代码:

useGpgCmd()

如下图所示:

在这里插入图片描述
然后Sync Now,再publish,出现了下一个问题。

③ 问题2

如下图所示:

在这里插入图片描述

具体错误信息:

Execution failed for task ':easy:publishMavenPublicationToMavenRepository'.
> Failed to publish publication 'maven' to repository 'maven'
   > Could not PUT 'https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/io/github/lilongweidev/easyview/1.0.6/easyview-1.0.6.aar'. Received status code 401 from server: Content access is protected by token

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

④ 解决2

  解决方法:在我的easy模块下的build.gradle中的credentials{}闭包下修改如下代码:

	username = findProperty("ossrhToken") as String               
	password = findProperty("ossrhTokenPassword") as String

然后Sync Now,再publish就OK了,反正我是这样OK的。


http://www.kler.cn/a/388900.html

相关文章:

  • JQuery封装的ajax
  • AI 写作(五)核心技术之文本摘要:分类与应用(5/10)
  • ML 系列: 第 24 节 — 离散概率分布(泊松分布)
  • 网页web无插件播放器EasyPlayer.js点播播放器遇到视频地址播放不了的现象及措施
  • 使用HTML、CSS和JavaScript创建动态圣诞树
  • 案例精选 | 河北省某检察院安全运营中异构日志数据融合的实践探索
  • 【9692】基于springcloud+vue的智慧养老平台
  • Linux:理解动静态库
  • Linux安装与配置 Gitblit 1.9.3 服务
  • 如何在 Linux 服务器上安装 Git
  • Linux——入门
  • 搭建监控系统Prometheus + Grafana
  • 独立站 API 接口的性能优化策略
  • CALL处 F8的“bug“
  • 7个常用的JavaScript数组操作进阶用法
  • Spring MVC(一)
  • 事件组(本质,车辆协同,改进姿态控制)
  • DICOM标准:DICOM医学影像中的覆盖层(Overlay)概念详解
  • Webpack 深度解析与实战指南
  • Notepad++ 最新官网中文版在线下载 附文本编辑器安装与基础使用教程
  • 区块链应用第1讲:基于区块链的智慧货运平台
  • 【算法】(Python)动态规划
  • 网络安全不知道怎么学,看完这篇,中学生都能学会
  • 【SpringBoot】——Spring Validation之用户注册、JWT令牌之用户登入
  • 群控系统服务端开发模式-应用开发-前端登录页面开发
  • 聚观早报 | 奥迪集团Q3财报;小鹏汽车宣布增程计划