Halaman ini belum tersedia dalam bahasa lokal Anda. Kami berusaha keras untuk menambahkan lebih banyak versi bahasa. Terima kasih atas dukungan Anda.

Compute
Elastic Cloud Server
Huawei Cloud Flexus
Bare Metal Server
Auto Scaling
Image Management Service
Dedicated Host
FunctionGraph
Cloud Phone Host
Huawei Cloud EulerOS
Networking
Virtual Private Cloud
Elastic IP
Elastic Load Balance
NAT Gateway
Direct Connect
Virtual Private Network
VPC Endpoint
Cloud Connect
Enterprise Router
Enterprise Switch
Global Accelerator
Management & Governance
Cloud Eye
Identity and Access Management
Cloud Trace Service
Resource Formation Service
Tag Management Service
Log Tank Service
Config
OneAccess
Resource Access Manager
Simple Message Notification
Application Performance Management
Application Operations Management
Organizations
Optimization Advisor
IAM Identity Center
Cloud Operations Center
Resource Governance Center
Migration
Server Migration Service
Object Storage Migration Service
Cloud Data Migration
Migration Center
Cloud Ecosystem
KooGallery
Partner Center
User Support
My Account
Billing Center
Cost Center
Resource Center
Enterprise Management
Service Tickets
HUAWEI CLOUD (International) FAQs
ICP Filing
Support Plans
My Credentials
Customer Operation Capabilities
Partner Support Plans
Professional Services
Analytics
MapReduce Service
Data Lake Insight
CloudTable Service
Cloud Search Service
Data Lake Visualization
Data Ingestion Service
GaussDB(DWS)
DataArts Studio
Data Lake Factory
DataArts Lake Formation
IoT
IoT Device Access
Others
Product Pricing Details
System Permissions
Console Quick Start
Common FAQs
Instructions for Associating with a HUAWEI CLOUD Partner
Message Center
Security & Compliance
Security Technologies and Applications
Web Application Firewall
Host Security Service
Cloud Firewall
SecMaster
Anti-DDoS Service
Data Encryption Workshop
Database Security Service
Cloud Bastion Host
Data Security Center
Cloud Certificate Manager
Edge Security
Blockchain
Blockchain Service
Web3 Node Engine Service
Media Services
Media Processing Center
Video On Demand
Live
SparkRTC
MetaStudio
Storage
Object Storage Service
Elastic Volume Service
Cloud Backup and Recovery
Storage Disaster Recovery Service
Scalable File Service Turbo
Scalable File Service
Volume Backup Service
Cloud Server Backup Service
Data Express Service
Dedicated Distributed Storage Service
Containers
Cloud Container Engine
SoftWare Repository for Container
Application Service Mesh
Ubiquitous Cloud Native Service
Cloud Container Instance
Databases
Relational Database Service
Document Database Service
Data Admin Service
Data Replication Service
GeminiDB
GaussDB
Distributed Database Middleware
Database and Application Migration UGO
TaurusDB
Middleware
Distributed Cache Service
API Gateway
Distributed Message Service for Kafka
Distributed Message Service for RabbitMQ
Distributed Message Service for RocketMQ
Cloud Service Engine
Multi-Site High Availability Service
EventGrid
Dedicated Cloud
Dedicated Computing Cluster
Business Applications
Workspace
ROMA Connect
Message & SMS
Domain Name Service
Edge Data Center Management
Meeting
AI
Face Recognition Service
Graph Engine Service
Content Moderation
Image Recognition
Optical Character Recognition
ModelArts
ImageSearch
Conversational Bot Service
Speech Interaction Service
Huawei HiLens
Video Intelligent Analysis Service
Developer Tools
SDK Developer Guide
API Request Signing Guide
Terraform
Koo Command Line Interface
Content Delivery & Edge Computing
Content Delivery Network
Intelligent EdgeFabric
CloudPond
Intelligent EdgeCloud
Solutions
SAP Cloud
High Performance Computing
Developer Services
ServiceStage
CodeArts
CodeArts PerfTest
CodeArts Req
CodeArts Pipeline
CodeArts Build
CodeArts Deploy
CodeArts Artifact
CodeArts TestPlan
CodeArts Check
CodeArts Repo
Cloud Application Engine
MacroVerse aPaaS
KooMessage
KooPhone
KooDrive
Help Center/ CodeArts Artifact/ User Guide/ Self-Hosted Repos 1.0/ Managing Components 1.0/ Uploading Components on the Self-Hosted Repo Page

Uploading Components on the Self-Hosted Repo Page

Updated on 2024-10-16 GMT+08:00

Only repository administrators and developers can upload private components. You can set repository roles on the User Permissions page.

Procedure

To upload a component, perform the following steps:

  1. Go to the self-hosted repo page. In the left pane, click the target repository to which the private component is to be uploaded.
  2. Click Upload on the right of the page.
  3. Set the component parameters, select the file, and click Upload.

    Detailed configuration for each component type is described below.

    NOTE:

    You are advised not to upload files containing sensitive information such as plaintext accounts and passwords to self-hosted repos.

Maven Components

  • Project Object Model (POM) is the basic working unit of a Maven project. It is an XML file that contains basic project information to describe how to build a project and declare project dependencies. When a build task is run, Maven searches for the POM in the current directory, reads its content, obtains the required configuration information, and builds the target component.
  • Maven coordinates: X, Y, and Z are used to uniquely identify a point in the three-dimensional space. In Maven, GAV is used to identify a unique component package. It stands for Group ID, Artifact ID, and Version. Group ID indicates a company or organization. For example, Maven core components are in the org.apache.maven organization. Artifact ID indicates the name of the component package. Version indicates the version of the component package.
  • Maven dependencies are crucial for POM files. The building and running of most projects depend on the dependency on other components. Add the dependency list to your POM file. If the App component depends on the App-Core and App-Data components, the configuration is as follows:
    <project xmlns="http://maven.apache.org/POM/4.0.0"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
       http://maven.apache.org/xsd/maven-4.0.0.xsd">
          <modelVersion>4.0.0</modelVersion>
          <groupId>com.companyname.groupname</groupId>
          <artifactId>App</artifactId>
          <version>1.0</version>
          <packaging>jar</packaging>
          <dependencies>
             <dependency>
                <groupId>com.companyname.groupname</groupId>
                <artifactId>App-Core</artifactId>
                <version>1.0</version>
             </dependency>
          </dependencies>  
          <dependencies>
             <dependency>
                <groupId>com.companyname.groupname</groupId>
                <artifactId>App-Data</artifactId>
                <version>1.0</version>
             </dependency>
          </dependencies>  
    </project>

Uploading a Maven Component

POM and GAV upload modes are supported.

Upload Mode

Description

POM

GAV parameters are obtained from the POM file. The system retains transitive dependencies of components.

GAV

GAV, short for Group ID, Artifact ID, and Version, is the unique identifier of a JAR package. In this mode, GAV parameters are manually specified. The system automatically generates a POM file without any transitive dependency.

  • POM

    In POM mode, you can either upload just the POM file or both the POM file and its related components. The uploaded file must match the artifactId and version values specified in the POM. As shown in the following figure, if the artifactId value is demo and the version value is 1.0 in the POM, then the uploaded file must be named demo-1.0.jar.

    The POM file structure is as follows:

    <project>
      <modelVersion>4.0.0</modelVersion>
      <groupId>demo</groupId>
      <artifactId>demo</artifactId>
      <version>1.0</version>
    </project>
    NOTE:

    The modelVersion tag must exist and the value must be 4.0.0, indicating that Maven2 is used.

    If you upload files in both the POM and File area, the artifactId and version values in POM must match the file name in File. For example, if the artifactId value is demo and the version value is 1.0 in POM, then the uploaded file must be named demo-1.0 in File.

  • GAV

    In the GAV mode, the Group ID, Artifact ID, and Version parameters must be manually specified and they determine the name of the file to upload. Extension indicates the packaging type and determines the file type to be uploaded.

    Classifier is used to differentiate artifacts that are built from the same POM but contain different contents. This field is optional. It can contain letters, digits, underscores (_), hyphens (-), and dots (.). If you specify this field, it will be appended to the file name.

    Common usage scenario

    • Differentiate versions by name, such as demo-1.0-jdk13.jar and demo-1.0-jdk15.jar.
    • Differentiate usage by name, such as demo-1.0-javadoc.jar and demo-1.0-sources.jar.

npm Components

Node Package Manager (npm) is a JavaScript package management tool. An npm component package is the item managed by npm, and the npm repository is used to store and manage these packages.

The npm component package consists of a structure and file description.

  • Package structure: organizes various files in a package, such as source code files and resource files.
  • Description file: describes package information. Example: package.json, bin, and lib files

The package.json file in the package is a description file of a project or module package. It contains information such as the name, description, version, and author. The npm install command downloads all dependent modules based on this file.

An example of the package.json file is as follows:

{
  "name": "third_use",			//Package name
  "version": "0.0.1",           //Version number
"description": "this is a test project", // Description
  "main": "index.js",			//Entry file
  "scripts": {					//Script command
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [					//Keyword
    "show"
  ],
  "author": "f",				//Developer name
  "license": "ISC",				//License agreement
  "dependencies": {				//Project production dependencies
    "jquery": "^3.6.0",
    "mysql": "^2.18.1"
  },
  "devDependencies": {			//Project development dependencies
    "less": "^4.1.2",
    "sass": "^1.45.0"
  }
}

The name and version are the most important fields and must exist. Otherwise, the current package cannot be installed. The two attributes together form the unique identifier of an npm package.

name indicates the name of the package. The first part of the name value, such as @scope/, is mandatory in the self-hosted repo and is used as the namespace. Generally, you can search for name to install and use the required package.

{
  "name": "@scope/name"
}

version indicates the version of the package, which is in the x.y.z format.

{
  "version": "1.0.0"
}

Uploading an npm Component

npm component packages in .tgz format can be uploaded to self-hosted repos. When uploading packages, you need to set the following parameters.

Parameter

Description

PackageName

The value must be the same as that of name in the package.json file.

Version

The value must be the same as that of version in the package.json file.

NOTE:

The PackageName value of the component to upload must start with the path in the path list added during repository creation. For details, see Repository Configuration Items.

Example:

The path @test is added when you create an npm repository.

When uploading components to the repository, make sure that the PackageName starts with @test. If a path outside the path list is used, for example, @npm, the upload will fail.

After the upload is successful, you can find the component in .tgz format in the repository list and the corresponding metadata is generated in the .npm directory.

Uploading a Go Component

Go, also known as Golang, is a programming language developed by Google. Golang 1.11 and later support modular package management. A module is a unit for source code exchange and versioning in Go. A MOD file identifies and manages a module. A ZIP file is a source code package. There are two types of Go modules: v2.0 and later and v2.0 and earlier. The management of the Go module is different between these two versions.

To upload a Go component, you need to upload both a ZIP file and a MOD file and set the following parameters.

Parameter

Description

zip path

Complete path of the ZIP file. Valid path formats are:

  • Versions earlier than v2.0: {moduleName}/@v/{version}.zip
  • Versions later than v2.0:
    • If the ZIP file contains go.mod and the path ends with /vN, the file path format is: {moduleName}/vX/@v/vX.X.X.zip
    • If the ZIP file does not contain go.mod or the first line in go.mod does not end with /vN, the file path format is: {moduleName}/@v/vX.X.X+incompatible.zip

zip file

Directory structure of the ZIP file. Valid directory structure formats are:

  • Versions earlier than v2.0: {moduleName}@{version}
  • Versions later than v2.0:
    • If the ZIP file contains go.mod and the path ends with /vN, the directory structure format is: {moduleName}/vX@{version}
    • If the ZIP file does not contain go.mod or the first line in go.mod does not end with /vN, the directory structure format is: {moduleName}@{version}+incompatible.

mod path

Complete path of the MOD file. Valid path formats are:

  • Versions earlier than v2.0: {moduleName}/@v/{version}.mod
  • Versions later than v2.0:
    • If the ZIP file contains go.mod and the path ends with /vN, the file path format is: {moduleName}/vX/@v/vX.X.X.mod
    • If the ZIP file does not contain go.mod or the first line in go.mod does not end with /vN, the file path format is: {moduleName}/@v/vX.X.X+incompatible.mod.

mod file

MOD file content. Valid content formats are:

  • Versions earlier than v2.0: module {moduleName}
  • Versions later than v2.0:
    • If the ZIP file contains go.mod and the path ends with /vN, the content format is: module {moduleName}/vX
    • If the ZIP file does not contain go.mod or the first line in go.mod does not end with /vN, the content format is: module {moduleName}

Uploading a PyPI Component

You are advised to go to the project directory (which must contain the setup.py configuration file) and run the following command to compress the components to be uploaded into a wheel (.whl) installation package. By default, this package is generated in the dist directory of your project directory. Note that the Python package management tool pip supports only wheel installation packages.

python setup.py sdist bdist_wheel

You need to set the following parameters.

Parameter

Description

PackageName

The value must be the same as that of name in the setup.py file.

Version

The value must be the same as that of version in the setup.py file.

After the upload is successful, you can find the installation package in .whl format in the repository list. In addition, the corresponding metadata is generated in the .pypi directory, which can be used for pip installation.

Uploading an RPM Component

Red Hat Package Manager (RPM), developed by Red Hat, is used by many Linux distributions. It is a software management system that installs software on Linux in database recording mode.

You are advised to package and name the RPM binary file according to the following rules:

Software name-Main version number of the software.Minor version number of the software.Software revision number-Number of software compilation times.Hardware platform suitable for the software.rpm

For example, hello-0.17.2-54.x86_64.rpm. hello is the software name, 0 is the major version number of the software, 17 is the minor version number, 2 is the revision number, 54 is the number of times that the software is compiled, and x86_64 is the hardware platform suitable for the software.

Software Name

Major Version

Minor Version

Revision No.

Compilation Times

Applicable Hardware Platform

hello

0

17

2

54

x86_64

Note: You need to set the following parameters when uploading components.

Parameter

Description

Component

Component name

Version

Version of the RPM binary package

  1. Go to the self-hosted repo page. In the left pane, click the target repository to which the private component is to be uploaded.
  2. Click Upload on the right of the page.
  3. Set the component parameters, select the file, and click Upload.

After the upload is successful, you can find the RPM binary package in the repository list and the corresponding metadata repodata directory is generated in the component name directory. You can use Yum to install the component.

Uploading a Debian Component

When uploading a Debian component, you need to set the following parameters:

Parameter

Description

Distribution

Release version of the software package

Component

Name of a software package component

Architecture

Software package architecture

Path

Path for storing the software package. By default, the software package is uploaded to the root path.

File

Local storage path of the software package to be uploaded

After the upload is successful, you can find the installation package in .deb format in the repository list. In addition, the corresponding metadata is generated in the dists directory, which can be used for Debian installation.

Uploading a NuGet Component

The NuGet package is a single ZIP file with the .nupkg extension. Users can use the NuGet package to share code specific to an organization or workgroup.

CodeArts Artifact supports uploading local NuGet packages to the self-hosted repo.

You are advised to package and name the NuGet file according to the following rules:

Software name-Major version number of the software.nupkg

Example: automapper.12.0.0.nupkg

  1. Go to the self-hosted repo page. In the left pane, click the target NuGet repository to which the private component is to be uploaded.
  2. Click Upload, select the NuGet file to be uploaded from the local host, and click Upload.

  3. View components that are successfully uploaded in the repository list.

    metadata stores metadata and is named after the component name. metadata cannot be deleted manually. It will be deleted or added automatically when the corresponding component is deleted or restored.

    package stores components.

Kami menggunakan cookie untuk meningkatkan kualitas situs kami dan pengalaman Anda. Dengan melanjutkan penelusuran di situs kami berarti Anda menerima kebijakan cookie kami. Cari tahu selengkapnya

Feedback

Feedback

Feedback

0/500

Selected Content

Submit selected content with the feedback