jjzjj

云小课|帮您高效快速上传组件至私有依赖库

华为云开发者社区 2023-03-28 原文

阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击此处。

摘要:软件开发平台中的发布服务类似于网盘,可以存储任何软件包和工具。用户可以使用发布服务中的私有依赖库(俗称私服),管理Maven、npm、Go、PyPI、RPM等多种类型的私有组件。单个上传组件至私有依赖库太麻烦,私有依赖库提供的批量迁移工具帮你消除困扰,在易用性上能够更加便捷地批量上传组件至私有依赖库。

本文分享自华为云社区《【云小课】应用平台第42课 云小课帮您高效快速上传组件至私有依赖库》,作者:阅识风云。

私有依赖库支持通过页面手动上传下载私有组件;还支持与本地开发环境对接,通过本地开发环境上传下载私有组件。通过私有依赖库上传组件的操作请参考上传私有组件。如果待上传的包太多,通过该操作单个上传会非常麻烦。而很多的组件摆在您的面前,如何提高效率呢?私有依赖库提供的批量迁移工具帮你提高上传效率,在易用性上能够更加便捷地批量上传组件至私有依赖库。本小课将带来如何批量迁移Maven组件的讲解。

前提条件:

  • 本地需安装Linux环境。
  • 由于我们需要使用的是Python语言编写迁移脚本,因此需要Nexus服务器支持Python2。
  • 待迁移的仓库及组件,如下图:

准备工作

首先我们要先创建Maven格式的私有依赖库。

登录软件开发平台首页,可参考登录方式介绍。进入私有依赖库,可参考进入私有依赖库的两种方式

单击“创建私有依赖库”,进入“新建私有依赖库”界面。

填写好仓库基本信息(参照下表),单击“确定”,成功新建私有依赖库。

以上我们介绍了操作前的准备工作,接下来我们将正式对于批量迁移Maven组件进行讲解。

获取私有依赖库地址与配置文件

1.首先我们进入到私有依赖库,找到建好的目标Maven私有依赖库。

当我们配置本地开发环境对接私有依赖库时,会用到私有依赖库地址。单击仓库名称,页面中仓库的详细信息显示“仓库地址”。单击图标即可复制该地址。

2.获取私有依赖库配置。

(a)单击页面右上方“操作指导”。

(b)在弹框中单击“下载配置文件”,下载配置文件至本地。

(c)在本地打开配置文件,在文件中搜索并找到用户名与密码。

下载迁移工具至服务器

1.返回私有依赖库,单击页面右侧“下载迁移工具”。

2. 将下载到本地的zip包,复制到服务器中。

3. 登录服务器,进入zip包所在的目录。输入以下命令,将压缩包解压并进入解压后的目录中。

unzip Nexus2DevCloud.zip
cd Nexus2DevCloud/

配置并执行迁移

我们开始使用下载完的迁移工具,进行相关配置并执行迁移组件到私有依赖库。

1.首先我们在本地Linux环境上执行以下命令,启动迁移工具脚本。

./NexusToDevcloud.py

弹出以下配置页面,进入我们迁移工具的主页面。

若提示“Permission denied”,可执行以下命令:

sudo chmod -R 777 ./NexusToDevcloud.py

sudo chmod 755 ./NexusToDevcloud.py

2.输入“i”,进入初始化配置。敲击每行配置前的字母,输入服务器配置及私有依赖库配置,敲击“q”返回上一页。

3.输入“r”,进入仓库迁移配置。页面中显示仓库列表,敲击左右方向键翻页。输入编号选择(或取消)需要迁移的仓库,当仓库名后出现绿色的“+”,表示需要迁移该仓库。设置完成敲击“q”返回上一页。

4. 输入“s”,保存配置(本文保存为“conf.json”)。

5. 输入“v”,验证配置。验证成功,页面出现如下提示。

6. 输入“x”,执行迁移。当出现如下页面时,表示迁移完成。

若提示推送失败,请检查以下配置是否正确:

  • 检查服务器到DevCloud网络是否连通。
  • 检查仓库路径是否正确。
  • 检查上传帐号密码是否正确。

7. 操作完毕后,我们可以进入私有依赖库,查看迁移结果

更多详细操作,请点击这里进行查看。

 

点击关注,第一时间了解华为云新鲜技术~

有关云小课|帮您高效快速上传组件至私有依赖库的更多相关文章

  1. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  2. ruby - 具有身份验证的私有(private) Ruby Gem 服务器 - 2

    我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..

  3. ruby - 我可以使用 aws-sdk-ruby 在 AWS S3 上使用事务性文件删除/上传吗? - 2

    我发现ActiveRecord::Base.transaction在复杂方法中非常有效。我想知道是否可以在如下事务中从AWSS3上传/删除文件:S3Object.transactiondo#writeintofiles#raiseanexceptionend引发异常后,每个操作都应在S3上回滚。S3Object这可能吗?? 最佳答案 虽然S3API具有批量删除功能,但它不支持事务,因为每个删除操作都可以独立于其他操作成功/失败。该API不提供任何批量上传功能(通过PUT或POST),因此每个上传操作都是通过一个独立的API调用完成的

  4. ruby-on-rails - 在 ruby​​ .gemspec 文件中,如何指定依赖项的多个版本? - 2

    我正在尝试修改当前依赖于定义为activeresource的gem:s.add_dependency"activeresource","~>3.0"为了让gem与Rails4一起工作,我需要扩展依赖关系以与activeresource的版本3或4一起工作。我不想简单地添加以下内容,因为它可能会在以后引起问题:s.add_dependency"activeresource",">=3.0"有没有办法指定可接受版本的列表?~>3.0还是~>4.0? 最佳答案 根据thedocumentation,如果你想要3到4之间的所有版本,你可以这

  5. ruby - RuntimeError(自动加载常量 Apps 多线程时检测到循环依赖 - 2

    我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("

  6. ruby-on-rails - 添加回形针新样式不影响旧上传的图像 - 2

    我有带有Logo图像的公司模型has_attached_file:logo我用他们的Logo创建了许多公司。现在,我需要添加新样式has_attached_file:logo,:styles=>{:small=>"30x15>",:medium=>"155x85>"}我是否应该重新上传所有旧数据以重新生成新样式?我不这么认为……或者有什么rake任务可以重新生成样式吗? 最佳答案 参见Thumbnail-Generation.如果rake任务不适合你,你应该能够在控制台中使用一个片段来调用重新处理!关于相关公司

  7. ruby-on-rails - 有没有办法为 CarrierWave/Fog 设置上传进度指示器? - 2

    我在Rails应用程序中使用CarrierWave/Fog将视频上传到AmazonS3。有没有办法判断上传的进度,让我可以显示上传进度如何? 最佳答案 CarrierWave和Fog本身没有这种功能;你需要一个前端uploader来显示进度。当我不得不解决这个问题时,我使用了jQueryfileupload因为我的堆栈中已经有jQuery。甚至还有apostonCarrierWaveintegration因此您只需按照那里的说明操作即可获得适用于您的应用的进度条。 关于ruby-on-r

  8. STM32读取串口传感器数据(颗粒物传感器,主动上传) - 2

    文章目录1.开发板选择*用到的资源2.串口通信(个人理解)3.代码分析(注释比较详细)1.主函数2.串口1配置3.串口2配置以及中断函数4.注意问题5.源码链接1.开发板选择我用的是STM32F103RCT6的板子,不过代码大概在F103系列的板子上都可以运行,我试过在野火103的霸道板上也可以,主要看一下串口对应的引脚一不一样就行了,不一样的就更改一下。*用到的资源keil5软件这里用到了两个串口资源,采集数据一个,串口通信一个,板子对应引脚如下:串口1,TX:PA9,RX:PA10串口2,TX:PA2,RX:PA32.串口通信(个人理解)我就从串口采集传感器数据这个过程说一下我自己的理解,

  9. ruby-on-rails - 在 Rails 中更高效地查找或创建多条记录 - 2

    我有一个应用需要发送用户事件邀请。当用户邀请friend(用户)参加事件时,如果尚不存在将用户连接到该事件的新记录,则会创建该记录。我的模型由用户、事件和events_user组成。classEventdefinvite(user_id,*args)user_id.eachdo|u|e=EventsUser.find_or_create_by_event_id_and_user_id(self.id,u)e.save!endendend用法Event.first.invite([1,2,3])我不认为以上是完成我的任务的最有效方法。我设想了一种方法,例如Model.find_or_cr

  10. Ruby - 如何处理子类意外覆盖父类(super class)私有(private)字段的问题? - 2

    假设您编写了一个类Sup,我决定将其扩展为SubSup。我不仅需要了解你发布的接口(interface),还需要了解你的私有(private)字段。见证这次失败:classSupdefinitialize@privateField="fromsup"enddefgetXreturn@privateFieldendendclassSub问题是,解决这个问题的正确方法是什么?看起来子类应该能够使用它想要的任何字段而不会弄乱父类(superclass)。编辑:equivalentexampleinJava返回"fromSup",这也是它应该产生的答案。 最佳答案

随机推荐