客户端上传/下载私有组件
客户端上传Maven组件
- 使用客户端工具为Maven,请确保已安装JDK和Maven。
- 从私有依赖库页面下载settings.xml文件,将下载的配置文件直接替换或按提示修改maven的settings.xml文件。
- 使用以下命令进行客户端上传,命令示例如下:
上传时需要到上传的pom文件所在目录下执行命令
mvn deploy:deploy-file -DgroupId={groupId} -DartifactId={artifactId} -Dversion={version} -Dpackaging=jar -Dfile={file_path} -DpomFile={pom_path} -Durl={url} -DrepositoryId={repositoryId} -s {settings_path} -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true
- 参数说明
- DgroupId :上传的groupId
- DartifactId :上传的artifactId
- Dversion :上传的版本version
- Dpackaging :上传包的类型(jar,zip,war等)
- Dfile :上传实体文件所在的路径
- DpomFile : 上传实体pom文件所在的路径(Release版本请注意:如果没有该参数,系统会自动生成pom,pom有特殊要求的请指定该参数)
- pom文件中的DgroupId ,DartifactId ,Dversion 要与外面的一致,否则报409。
- DpomFile 和(DgroupId ,DartifactId ,Dversion) 可以二选一(即如果选择DgroupId ,DartifactId ,Dversion,则可以不用DpomFile)
- Durl :上传文件到仓库的路径
- DrepositoryId :这个是settings配置的用户名密码所对应的id,如下图所示:
- 参数说明
- 从私有依赖库页面下载settings.xml文件,将下载的配置文件直接替换或按提示修改maven的settings.xml文件。
客户端下载Maven组件
- 使用客户端工具为Maven,请确保已安装JDK和Maven。
1. 从私有依赖库页面下载settings.xml文件,将下载的配置文件直接替换或按提示修改maven的settings.xml文件。
2. 使用以下命令进行客户端下载:mvn dependency:get -DremoteRepositories={repo_url} -DgroupId={groupId} -DartifactId={artifactId} -Dversion={version} -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true
客户端上传npm组件
客户端下载npm组件
客户端上传PyPI组件
- 使用客户端工具为python和twine,请确保已安装python和twine。
1. 从私有依赖库页面下载“pypirc”文件,将下载的“pypirc”文件另存为“.pypirc”文件。
2. 复制到用户目录下,Linux系统路径为:~/.pypirc (Windows系统路径为:C:\Users\<UserName>\.pypirc)。
3. 进入python工程目录,执行以下命令将python工程打成whl包:python setup.py bdist_wheel
4. 执行以下命令将文件上传到仓库:python -m twine upload -r pypi dist/*
如果上传时报证书问题,请执行以下命令(Windows系统请用git bash执行)设置环境变量跳过证书校验:
export CURL_CA_BUNDLE=""
环境变量会因重新登录机器、切换用户、重新打开bash窗口等原因被清除,请在每次执行上传前添加环境变量。
客户端下载PyPI组件
客户端上传/下载Go组件
使用客户端工具为go,请确保已安装golang1.13及以上版本,且工程为go module工程。
- Go Modules打包方式简介及包上传。
本文采用Go Modules打包方式完成Go组件的构建与上传。以下步骤中用到的username和password可以通过Go仓库的“操作指导”下载的配置文件中获取。
打包命令主要包括以下几部分:
- 在工作目录中创建源文件夹。
mkdir -p {module}@{version}
- 将代码源拷贝至源文件夹下。
cp -rf . {module}@{version}
- 压缩组件zip包。
zip -D -r [包名] [包根目录名称]
- 上传组件zip包与“go.mod”文件到私有依赖库中。
curl -k -u {{username}}:{{password}} -X PUT {{repoUrl}}/{filePath} -T {{localFile}}
根据打包的版本不同,组件目录结构有以下几种情况:
- v2.0以下版本:目录结构与“go.mod”文件路径相同,无需附加特殊目录结构。
- v2.0以上(包括v2.0)版本:
- “go.mod”文件中第一行以“/vX”结尾:目录结构需要包含“/vX”。例如,版本为v2.0.1,目录需要增加“v2”。
- “go.mod”文件中第一行不以“/vN”结尾:目录结构不变,上传文件名需要增加“+incompatible”。
下面分别对不同的版本举例说明。
v2.0以下版本打包。
以下图所示“go.mod”文件为例。
- 在工作目录中创建源文件夹。
命令行中,参数“module”的值为“example.com/demo”,参数“version”自定义为1.0.0。因此命令如下:
mkdir -p ~/example.com/demo@v1.0.0
- 将代码源拷贝至源文件夹下。
cp -rf . ~/example.com/demo@v1.0.0/
- 压缩组件zip包。
cd ~
然后,使用zip命令将代码压缩成组件包。命令行中,“包根目录名称”为“example.com”“包名”自定义为“v1.0.0.zip”,因此命令如下:
zip -D -r v1.0.0.zip example.com/
- 上传组件zip包与“go.mod”文件到私有依赖库中。
命令行中,参数“username”、“password”、“repoUrl”均可通过私有依赖库配置文件获取。
- 对于zip包,参数“filePath”为“example.com/demo/@v/v1.0.0.zip”,“localFile”为“v1.0.0.zip”。
- 对于“go.mod”文件,参数“filePath”为“example.com/demo/@v/v1.0.0.mod”,“localFile”为“example.com/demo@v1.0.0/go.mod”。
因此命令如下(参数username、password、repoUrl请参照私有依赖库配置文件自行修改):
curl -k -u {{username}}:{{password}} -X PUT {{repoUrl}}/example.com/demo/@v/v1.0.0.zip -T v1.0.0.zip curl -k -u {{username}}:{{password}} -X PUT {{repoUrl}}/example.com/demo/@v/v1.0.0.mod -T example.com/demo@v1.0.0/go.mod
- 在工作目录中创建源文件夹。
- v2.0以上版本打包,且“go.mod”文件中第一行以“/vX”结尾。
以下图所示“go.mod”文件为例。
- 在工作目录中创建源文件夹。
命令行中,参数“module”的值为“example.com/demo/v2”,参数“version”自定义为“2.0.0”。因此命令如下:
mkdir -p ~/example.com/demo/v2@v2.0.0
- 将代码源拷贝至源文件夹下。
- 压缩组件zip包。
cd ~
然后,使用zip命令将代码压缩成组件包。命令行中,“包根目录名称”为“example.com”“包名”自定义为“v2.0.0.zip”,因此命令如下:
zip -D -r v2.0.0.zip example.com/
- 上传组件zip包与“go.mod”文件到私有依赖库中。
命令行中,参数“username”、“password”、“repoUrl”均可通过私有依赖库配置文件获取。
- 对于zip包,参数“filePath”为“example.com/demo/v2/@v/v2.0.0.zip”,“localFile”为“v2.0.0.zip”。
- 对于“go.mod”文件,参数“filePath”为“example.com/demo/v2/@v/v2.0.0.mod”,“localFile”为“example.com/demo/v2@v2.0.0/go.mod”。
因此命令如下(参数username、password、repoUrl请参照私有依赖库配置文件自行修改):
curl -u {{username}}:{{password}} -X PUT {{repoUrl}}/example.com/demo/v2/@v/v2.0.0.zip -T v2.0.0.zip curl -u {{username}}:{{password}} -X PUT {{repoUrl}}/example.com/demo/v2/@v/v2.0.0.mod -T example.com/demo/v2@v2.0.0/go.mod
- 在工作目录中创建源文件夹。
- v2.0以上版本打包,且“go.mod”文件中第一行不以“/vX”结尾。
以下图所示“go.mod”文件为例。
- 在工作目录中创建源文件夹。
命令行中,参数“module”的值为“example.com/demo”,参数“version”自定义为“3.0.0”。因此命令如下:
mkdir -p ~/example.com/demo@v3.0.0+incompatible
- 将代码源拷贝至源文件夹下。
cp -rf . ~/example.com/demo@v3.0.0+incompatible/
- 压缩组件zip包。
cd ~
然后,使用zip命令将代码压缩成组件包。命令行中,“包根目录名称”为“example.com”“包名”自定义为“v3.0.0.zip”,因此命令如下:
zip -D -r v3.0.0.zip example.com/
- 上传组件zip包与“go.mod”文件到私有依赖库中。
命令行中,参数“username”、“password”、“repoUrl”均可通过私有依赖库配置文件获取。
- 对于zip包,参数“filePath”为“example.com/demo/@v/v3.0.0+incompatible.zip”,“localFile”为“v3.0.0.zip”。
- 对于“go.mod”文件,参数“filePath”为“example.com/demo/@v/v3.0.0+incompatible.mod”,“localFile”为“example.com/demo@v3.0.0+incompatible/go.mod”。
因此命令如下(参数username、password、repoUrl请参照私有依赖库配置文件自行修改):
curl -k -u {{username}}:{{password}} -X PUT {{repoUrl}}/example.com/demo/@v/v3.0.0+incompatible.zip -T v3.0.0.zip curl -k -u {{username}}:{{password}} -X PUT {{repoUrl}}/example.com/demo/@v/v3.0.0+incompatible.mod -T example.com/demo@v3.0.0+incompatible/go.mod
- 通过go客户端下载Go组件。
go客户端无法忽略证书校验,需要先把私有依赖库对应的域名证书添加到本地证书信任列表里,执行以下步骤添加信任证书列表。
- 导出证书。
openssl s_client -connect {host}:443 -showcerts </dev/null 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' |openssl x509 -outform PEM >mycertfile.pem openssl x509 -outform der -in mycertfile.pem -out mycertfile.crt
mycertfile.pem和mycertfile.crt即为下载的证书。
- 把证书加入到根证书信任列表中。
- 执行go命令下载依赖包
##1.v2.0以下版本包 go get -v <moudlename> ##2.v2.0以上(包含2.0)版本包 ##a.zip包里有go.mod且路径以/vN结尾的 go get -v {{moduleName}}/vN@{{version}} ##b.zip包里不含go.mod或go.mod 第一行里不以/vN结尾的 go get -v {moduleName}}@{{version}}+incompatible
- 导出证书。
- 在工作目录中创建源文件夹。
客户端上传/下载RPM组件
使用linux系统和yum工具,请确保使用linux系统,且已安装yum。
- 检查linux下是否安装yum工具
在linux主机中输入
rpm -qa yum
如出现如下内容 则证明机器已安装yum
- 登录软件开发生产线,进入Rpm私有依赖库。单击页面右侧“操作指导”
- 在弹框中单击“下载配置文件”。
- 在Linux主机中执行以下命令,上传Rpm组件
curl -k -u {{user}}:{{password}} -X PUT https://{{repoUrl}}/{{component}}/{{version}}/ -T {{localFile}}
其中,“user”、“password”、“repoUrl”来源于上一步下载的配置文件中“rpm上传命令”部分。
- user:位于curl -u与-X之间、“:”之前的字符串。
- password:位于curl -u与-X之间、“:”之后的字符串。
- repoUrl:“https://”与“/{{component}}”之间的字符串。
“component”、“version”、“localFile”来源于待上传的Rpm组件。以组件“hello-0.17.2-54.x86_64.rpm”为例。
从Rpm私有依赖库获取依赖包
以•发布私有组件到Rpm私有依赖库中发布的Rpm私有组件为例,介绍如何从Rpm私有依赖库中获取依赖包。
客户端上传Conan组件
Conan是C/C++的包管理器,它适用于所有操作系统(Windows,Linux,OSX,FreeBSD,Solaris等)。
前提条件:
- 已安装Conan客户端。
- 私有依赖库中已创建Conan仓库。
- 从私有依赖库页面选择对应的Conan仓库,单击“操作指导”,下载配置文件。
用户可以将得到的配置文件替换本地的Conan配置(Linux路径为~/.conan/remotes.json,Windows路径为C:\Users\<UserName>\.conan\remotes.json)。
- 在使用配置页面复制并执行如下命令,将私有依赖库添加至本地Conan客户端中。
conan remote add Conan {repository_url} conan user {user_name} -p={repo_password} -r=Conan
执行以下命令来查看远程仓库是否已经配置到Conan客户端中。
conan remote list
- 上传所有软件包至远程仓库,示例中my_local_server为远程仓库,实际使用过程中您可以替换为自己的仓库。
$ conan upload hello/0.1@demo/testing --all -r=my_local_server
- 查看远程仓库中已上传的软件包。
$ conan search hello/0.1@demo/testing -r=my_local_server
客户端下载Conan组件
- 从私有依赖库页面选择对应的Conan仓库,单击“操作指导”,下载配置文件。
用户可以将得到的配置文件替换本地的Conan配置(Linux路径为~/.conan/remotes.json,Windows路径为C:\Users\<UserName>\.conan\remotes.json)。
- 执行安装命令来下载远程仓库中的Conan依赖包。
$ conan install ${package_name}/${package_version}@${package_username}/${channel} -r=cloud_artifact
- 执行搜索命令查看已下载的Conan软件包。
$ conan search "*"
- 执行删除命令移除本地缓存中的软件包。
$ conan remove ${package_name}/${package_version}@${package_username}/${channel}
NuGet客户端上传组件
使用客户端工具为NuGet,请确保已安装NuGet。
- 从私有依赖库页面选择对应的NuGet仓库,单击“操作指导”,下载配置文件“NuGet.txt”。
- 打开下载的配置文件,使用如下命令,进行源的添加。
##----------------------NuGet add source----------------------## nuget sources add -name {repo_name} -source {repo_url} -username {user_name} -password {repo_password}
- 使用如下命令进行包的上传,替换<PATH_TO_FILE>为要上传文件的路径,执行上传语句(若有配置源,-source后的参数可使用配置的源名称)。
##----------------------NuGet Download----------------------## nuget push <PATH_TO_FILE> -source <SOURCE_NAME>
dotnet客户端上传组件
使用客户端工具为dotnet,请确保已安装dotnet。
![](https://support.huaweicloud.com/intl/zh-cn/usermanual-cloudartifact/public_sys-resources/note_3.0-zh-cn.png)
dotnet客户端需要添加信任服务器证书,才可以使用。
- windows信任证书步骤:
openssl s_client -connect {host}:443 -showcerts </dev/null 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' |openssl x509 -outform PEM >mycertfile.pem openssl x509 -outform der -in mycertfile.pem -out mycertfile.crt
mycertfile.pem和mycertfile.crt即为下载的证书。
2.windows需要使用powershell 添加证书信任。
添加证书
Import-Certificate -FilePath "mycertfile.crt" -CertStoreLocation cert:\CurrentUser\Root
- 从私有库页面选择对应的NuGet仓库,单击“操作指导”,下载配置文件“dotnet.txt”。
- 打开配置文件,找到dotnet add source下的命令,进行源的添加。
##----------------------dotnet add source----------------------## dotnet nuget add source {repo_url} add -n {repo_name} -u {user_name} -p {repo_password}
- 找到dotnet upload下的语句,替换<PATH_TO_FILE>为要上传文件的路径,执行上传语句。
##----------------------dotnet upload----------------------## dotnet nuget push <PATH_TO_FILE> -s {repo_name}
NuGet客户端下载组件
使用客户端工具为NuGet,请确保已安装NuGet。
- 从私有库页面选择对应的NuGet仓库,单击“操作指导”,下载配置文件“NuGet.txt”。
- 打开配置文件,找到NuGet add source下的命令,进行源的添加。
##----------------------NuGet add source----------------------## nuget sources add -name {repo_name} -source{repo_url} -username {user_name} -password {repo_password}
- 打开配置文件,找到NuGet Download下的语句,替换<PACKAGE>为要下载组件的名称,执行下载语句(若有配置源,-source后的参数可使用配置的源名称)。
##----------------------NuGet Download----------------------## nuget install <PACKAGE>
dotnet客户端下载组件
使用客户端工具为dotnet,请确保已安装dotnet。
- 从私有库页面选择对应的NuGet仓库,单击“操作指导”,下载配置文件“dotnet.txt”。
- 打开配置文件,找到dotnet add source下的命令,进行源的添加。
##----------------------dotnet add source----------------------## dotnet nuget add source {repo_url} add -n {repo_name} -u {user_name} -p {repo_password}
- 找到dotnet download下的语句,替换< PACKAGE >为要下载组件的名称,执行下载语句。
##----------------------dotnet download----------------------## dotnet add package <PACKAGE>