Uploading Components

When your build makes use of proprietary or custom dependencies that are not available from public repositories, you will often need to find a way to make them available to developers in a custom repository. Nexus Repository Manager makes it easy to upload these third-party components to any of your hosted repositories via the UI, as shown below.


Before you begin

There are a few things you need before you can use this feature:

  1. The nx-component-upload privilege assigned to the user (anonymous users do not have this privilege by default, but admins do)
  2. One or more hosted repositories (only Apt, Maven release, npm, NuGet, PyPI, RubyGems, Raw and Yum repositories are supported)
  3. Users must have the privilege to edit the repository. It is worth noting that if a user has browse and read privileges, the user will still see the Upload button, however an message will be displayed that they are not authorized if they try to upload a file.
  4. One or more files of the proper type(s) for the intended repository format.

Valid file types for each format are enumerated in the table below:

Repository formatValid file typesMultiple file upload
Apt.deb, .udebNo
MavenNo restrictions, but common types include .pom, .jar, and .zipYes
npm.tgzNo
NuGet.nupkgNo
PyPI.tar.gzNo
RawNo restrictionsYes
RubyGems.gemNo
Yum

None with permissive policy, otherwise .rpm, and .drpm

No

How to upload a component

To upload components to a repository, select a hosted repository in the Browse feature and then click on the Upload component button, which will display the screen shown below.

The details depend on the repository in question, but to upload a component, fill out all of the required fields and click on the Upload button. Once the upload completes successfully, the form will be cleared and a message appears with a link to the component you uploaded, as seen in the screen below:

If you click this link, you will be taken to the Search feature where you can further inspect the component you uploaded. This is a cross-repository search, so you can easily detect whether an identical component already exists in another repository. This is demonstrated in the screen below:

Advanced usage

If you have an advanced use case that isn’t supported by this feature, such as batch uploads or automatically extracting coordinates from a .jar file, look into the component endpoint of our REST and Integration API.