Sonatype Nexus Repository Open Source Codebase

Overview

Sonatype Nexus Repository Open Source Codebase

CircleCI Build Status Join the chat at https://gitter.im/sonatype/nexus-developers

Downloadable Bundles

See: https://www.sonatype.com/download-oss-sonatype

Build Requirements

Builds use Apache Maven and require Java 8. Apache Maven wrapper scripts are included in the source tree.

All release versioned dependencies should be available from the Central repository.

For SNAPSHOT sources, SNAPSHOT versioned dependencies may only be available from https://repository.sonatype.org/content/groups/sonatype-public-grid repository.

Configuring Maven for SNAPSHOT Dependencies

Following best practices, the nexus-public POM does not include any root elements.

Instead you are advised to configure Apache Maven to point at single repository mirror URL that is a group repository containing both Central proxy repository with Release version policy and sonatype-public-grid with a SNAPSHOT version policy. You can use a repository manager to set up a group repository that contains both of these remotes.

Alternately, add a custom profile to a settings.xml for repository manager development that includes both repositories.

Building From Source

Released versions are tagged and branched using a name of the form release-{version}. For example: release-3.29.2-02

To build a tagged release, first fetch all tags:

git fetch --tags

Then checkout the remote branch you want. For example:

git checkout -b release-3.29.2-02 origin/release-3.29.2-02 --

Then build using the included Maven wrapper script. For example:

./mvnw clean install

For building SNAPSHOT versions, follow the same process, except your build may require access to Sonatype Public Grid to successfully resolve dependencies.

Running

To run Nexus Repository, after building, unzip the assembly and start the server:

unzip -d target assemblies/nexus-base-template/target/nexus-base-template-*.zip
./target/nexus-base-template-*/bin/nexus console

The nexus-base-template assembly is used as the basis for the official Sonatype Nexus distributions.

License

This project is licensed under the Eclipse Public License - v 1.0, you can read the full text here

Getting help

Looking to contribute to our code but need some help? There's a few ways to get information or our attention:

Comments
  • Ensure nexus-repository-pypi provide the data-requires-python attribute

    Ensure nexus-repository-pypi provide the data-requires-python attribute

    This PR ensure that nexus-repository-pypi provide the "data-requires-python" when necessary.

    It fix: https://issues.sonatype.org/browse/NEXUS-18117 https://issues.sonatype.org/browse/NEXUS-21150

    Per PEP-503 specification:

    A repository MAY include a data-requires-python attribute on a file link. This exposes the Requires-Python metadata field, specified in PEP 345, for the corresponding release. Where this is present, installer tools SHOULD ignore the download when installing to a Python version that doesn't satisfy the requirement.

    Without this attributes, Nexus would allow pip to install packages incompatible with the current python environment. Since multiples packages are dropping support for python-2 in favor of python-3, this attribute is very important for clients who still manage python-2 environments.

    A good example, is the pytest package which dropped support for python-3 in it's 5.0.0 release.

    Here's the link from PyPi:

    <a href="https://files.pythonhosted.org/packages/b7/a9/e64eae45880d383120ef258e23136c74ecd0757ecae84491b578eabaa562/pytest-5.0.0.tar.gz#sha256=95b700cf21ed5b7e91bce7a6b5a573b2e3ef7b3643d00f681d8f9c4672f9fbdf" data-requires-python=">=3.5">pytest-5.0.0.tar.gz</a><br/>
    

    Here's the link on a Nexus server with the bug:

    <a href="../../packages/b7/a9/e64eae45880d383120ef258e23136c74ecd0757ecae84491b578eabaa562/pytest-5.0.0.tar.gz#sha256=95b700cf21ed5b7e91bce7a6b5a573b2e3ef7b3643d00f681d8f9c4672f9fbdf" rel="internal">pytest-5.0.0.tar.gz</a><br/>
    

    And here's the link on a Nexus server with the fix:

    <a href="../../packages/b7/a9/e64eae45880d383120ef258e23136c74ecd0757ecae84491b578eabaa562/pytest-5.0.0.tar.gz#sha256=95b700cf21ed5b7e91bce7a6b5a573b2e3ef7b3643d00f681d8f9c4672f9fbdf" rel="internal" data-requires-python=">=3.5">pytest-5.0.0.tar.gz</a><br/>
    

    I hope this help! Let me know if you would like changes.

    opened by renaudll 11
  • Bump AWS SDK version to support IRSA

    Bump AWS SDK version to support IRSA

    Resolves https://issues.sonatype.org/browse/NEXUS-24019

    AWS EKS supports a built-in system for assigning IAM roles to pods, which requires the application running in said pod to be able to use sts:AssumeRoleWithWebIdentity method to assume the role specified in the service account annotation. This is useful for seamless nexus compatibility with AWS EKS.

    https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts-minimum-sdk.html

    AWS SDK supports it out of the box starting with version 1.11.704

    opened by artemsablin 10
  • Do not try to delete a non-existing lifecycleconfiguration NEXUS-17645

    Do not try to delete a non-existing lifecycleconfiguration NEXUS-17645

    This change is related to NEXUS-17645.

    Even when you try to create a S3 storage - backed by minio - saying "Expiration Days" disabled

    How many days until deleted blobs are finally removed from the S3 bucket (-1 to disable)

    the creation of the blob stores still fails, because it tries to delete the bucket lifecycle configuration also there is none.

    This would make it possible again to use minio as s3 blob storage (in combination with https://github.com/sonatype/nexus-public/pull/55)

    opened by markush81 10
  • npm scoped packages support

    npm scoped packages support

    This change adds scope support for npm repositories and also replaces metadata store from Orient to repo LS. No migration path present, hence is usable for new deploys only.

    ITs and tests updated.

    pending 
    opened by cstamas 9
  • Update Sisu and Guice

    Update Sisu and Guice

    Changes:

    • sisu bump to 0.3.3
    • guice bump/change to google 4.0
    • smaller code changes (deprecated/removed method use and https://github.com/google/guice/issues/618 related)

    This PR updates Sisu and Guice (to "vanilla" Guice), and hence, among other improvements makes possible to use Plugins developed using Java8 target (Sisu 0.2.x is unable to scan Java8 bytecode).

    enhancement 
    opened by cstamas 8
  • Fix proxy API request converter for http client auth

    Fix proxy API request converter for http client auth

    Authentication is part of of HTTP client configuration, not connection settings.

    Creating/Updating proxy with authentication via the REST API ignore the settings.

    opened by jonesbusy 7
  • Remove size check for prefix file

    Remove size check for prefix file

    As there is already max lines and max line length checks (that implicitly caps the file size), hence, instead of setting two properties in future (entry count and/or file size) it is enough to increase max entry count.

    Current prefix file stats: size: 101kb lines: 7258

    opened by cstamas 6
  • Fix Content-Range header

    Fix Content-Range header

    According to the HTTP spec, a Content-Range header must start with "bytes " when using bytes as the range unit.

    Some refs:

    pending 
    opened by ahirata 5
  • Prevent possible NPE in pypi repo upgrade

    Prevent possible NPE in pypi repo upgrade

    I hit an NPE when upgrading from 3.16 to 3.21 or 3.30. The NPE happens when upgrading a pypi repo, when the index cannot be located.

    This fix simply skips deleting the index, if its not found. I have verified that this allows the upgrade to proceed in our environment.

    See this bug report for more details on the issue. https://issues.sonatype.org/browse/NEXUS-27536

    opened by eli-jordan 4
  • Add path prefix configuration for bucket objects

    Add path prefix configuration for bucket objects

    This change enables users to configure a path prefix for objects stored in the S3 bucket, effectively allowing multiple blob stores / repositories to share the same bucket. This can simplify bucket management significantly in cases where DevOps requires more control over buckets.

    opened by kampka 4
  • [nexus 2.x] no boot delegation

    [nexus 2.x] no boot delegation

    Replace Nexus 2 boot delegation "*" with packages being exported by system bundle and plugins using DynamicImport-Package.

    This will allow plugins to include as dependencies different versions of libraries that are also present in nexus core.

    pending 
    opened by adreghiciu 4
  • Fix/nexus 35266

    Fix/nexus 35266

    lastDownloaded variable, declared as member of class AssetXO isn't initialised.

    Which leads to 2 unwanted behavior :

    • var value is always null,
    • the output isn't json compliant. As lastDownloaded is also contained in Map attributes.

    Jira issue : https://issues.sonatype.org/browse/NEXUS-35266

    opened by yamansama 0
  • Add sha256 checksums to assets in raw repositories

    Add sha256 checksums to assets in raw repositories

    SHA256 checksums aren't added to assets in a raw-format if uploaded via the API. It does work if you upload it through the gui though. This fixes this (I hope).

    See also: https://issues.sonatype.org/browse/NEXUS-20827?focusedCommentId=817066&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-817066

    opened by gummiboll 0
  • limit max workers for jest to help with CI build resource failure

    limit max workers for jest to help with CI build resource failure

    Trying to avoid exhaustion of CPU/RAM during CI build while building the nexus-coreui-plugin sub-module.

    This article implies a possible solution: https://discuss.circleci.com/t/memory-problems-with-jest-and-workers/10297

    Any thoughts on if this PR is making the change in the correct place?

    If this changes appears to solve the problem, I would make the same change in the internal repo.

    opened by bhamail 0
  • Content-Security-Policy allow user triggered downloads

    Content-Security-Policy allow user triggered downloads

    There is an open issue on redoc that is not allowing to download the specification when published on nexus. https://github.com/Redocly/redoc/issues/1902

    Issue: image

    This fix fixes the downloading of generated specification from ReDoc and published on nexus as html.

    https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/sandbox

    opened by matejsp 2
  • S3 Blobstore: Support for buckets that don't support certain features

    S3 Blobstore: Support for buckets that don't support certain features

    This adds support for S3 endpoints that do not support lifecycle policies or object tagging (such as provided by Wasabi) by simply ignoring them and logging a warning.

    opened by theCapypara 2
Releases(release-3.45.0-01)
JitPack is a novel package repository for JVM and Android projects.

JitPack is a novel package repository for JVM and Android projects. It builds Git projects on demand and provides you with ready-to-use artifacts (jar, aar).

JitPack 2.3k Dec 27, 2022
IzPack - Source Code

IzPack IzPack is a widely used tool for packaging applications on the Java platform as cross-platform installers. License IzPack is published under th

IzPack 296 Dec 22, 2022
Source code of Trend's Manhunt plugin

Trend's Manhunt This is the official repository of my Manhunt plugin. Contribution You are allowed to contribute, but NOT to yoink all of my plugin co

flpae 1 Oct 19, 2022
A Nexus Repository 3 plugin that allows usage of Terraform repositories

Nexus Repository Terraform Format Table Of Contents Developing Requirements Download Building Using Terraform with Nexus Repository Manager 3 Compatib

null 8 Dec 5, 2022
An open source codebase for sharing programming solutions.

Codinasion An open source codebase for sharing programming blogs and solutions. This repository contains the Markdown source files for codinasion.web.

Codinasion 0 Jan 2, 2023
An open source codebase for sharing programming solutions.

Codinasion An open source codebase for sharing programming blogs and solutions. This repository contains the Markdown source files for codinasion.web.

Codinasion 61 Oct 7, 2022
Project on End to End CI/CD pipeline for java based application using Git,Github,Jenkins,Maven,Sonarqube,Nexus,Slack,Docker and Kuberenets with ECR as private docker registry and Zero Downtime Deployment

Project on End to End CI/CD pipeline for java based application using Git,Github,Jenkins,Maven,Sonarqube,Nexus,Slack,Docker and Kuberenets with ECR as private docker registry and Zero Downtime Deployment.

NITHIN JOHN GEORGE 10 Nov 22, 2022
The codebase for the narayana project

Narayana Website: http://narayana.io Twitter: https://twitter.com/narayana_io, using twitter handle #narayanaio Getting help If you need help with usi

null 197 Dec 14, 2022
A React Native project starter with Typescript, a theme provider with hook to easy styling component, a folder architecture ready and some configs to keep a codebase clean.

React Native Boilerplate Folder structure : src ├── assets │   ├── audios │   ├── fonts │   ├── icons │   └── images ├── components │   ├── Layout.tsx

LazyRabbit 23 Sep 1, 2022
Codebase for talk on Spring I/O 2022 in Barcelona about Spring for Apache Kafka

Spring I/O Barcelona 2022 - Spring Kafka beyond the basics Codebase for my talk on Spring I/O 2022 in Barcelona about Spring for Apache Kafka Slides P

Tim van Baarsen 18 Dec 24, 2022
PostgreSQL is the world's most advanced open source database. Also, PostgreSQL is suitable for Event Sourcing. This repository provides a sample of event sourced system that uses PostgreSQL as event store.

Event Sourcing with PostgreSQL Introduction Example Domain Event Sourcing and CQRS 101 State-Oriented Persistence Event Sourcing CQRS Advantages of CQ

Evgeniy Khyst 146 Dec 20, 2022
An Open-Source repository 🌎 that contains all the Data Structures and Algorithms concepts and their implementation, programming questions and Interview questions

An Open-Source repository ?? that contains all the Data Structures and Algorithms concepts and their implementation, programming questions and Interview questions. The main aim of this repository is to help students who are learning Data Structures and Algorithms or preparing for an interview.

Aritra Das 19 Dec 29, 2022
Hacktoberfest 2022 : Repository for open-source contributions towards Hacktoberfest 2022

Hacktoberfest 2022 OPEN Pull Request - FREE T-SHIRT's ?? DON'T COMMIT ~ PR REPO HAS BEEN EXCULDED ( DON'T KNOW THE EXACT REASON ~ RUMORS ARE THAT THIS

Saurabh Kumar 112 Jan 9, 2023
Sourcetrail - free and open-source interactive source explorer

Sourcetrail Sourcetrail is a free and open-source cross-platform source explorer that helps you get productive on unfamiliar source code. Windows: Lin

Coati Software 13.2k Jan 5, 2023
Source code of APK-Explorer-Editor (AEE), an open-source tool to explore the contents of an installed APK!

APK Explorer & Editor (AEE) APK Explorer & Editor, an open-source tool to explore the contents of an installed APK, is strictly made with an aim to in

APK Explorer & Editor 271 Jan 8, 2023
FOSSLight source code repository

[Kor] FOSSLight FOSSLight is an integrated system that can efficiently process the open source compliance process. Features Compliance Workflow It can

FOSSLight 116 Dec 7, 2022
This is the primary repository for the source code of the OpenJML project.

OpenJML This is the primary repository for the OpenJML project. The active issues list for OpenJML development is here and the wiki contains informati

OpenJML 111 Dec 22, 2022
This repository will contain useful matriel and source code for OOP exam.

PrepForOopExam Hello everyone! I assume that you're currently studying for your OOP exam and you are probably tired from exercise 5 , don't know how o

Ido Pinto 7 Sep 20, 2022