Chocolatey Community Coffee Break

Join the Chocolatey Team on our regular monthly stream where we discuss all things Community, what we do, how you can get involved and answer your Chocolatey questions.

Learn More

Chocolatey Product Spotlight

Join the Chocolatey Team on our regular monthly stream where we put a spotlight on the most recent Chocolatey product releases. You'll have a chance to have your questions answered in a live Ask Me Anything format.

Learn More

Announcing Chocolatey Central Management 0.10.0

Livestream from
Thursday, 06 October 2022

We recently released our largest update to Chocolatey Central Management so far. Join Gary and Steph to find out more about Chocolatey Central Management and the new features and fixes we've added to this release.

Watch On-Demand
Chocolatey and Intune Overview

Webinar Replay from
Wednesday, 30 March 2022

At Chocolatey Software we strive for simple, and teaching others. Let us teach you just how simple it could be to keep your 3rd party applications updated across your devices, all with Intune!

Watch On-Demand
Chocolatey For Business. In Azure. In One Click.

Livestream from
Thursday, 9 June 2022

Join James and Josh to show you how you can get the Chocolatey For Business recommended infrastructure and workflow, created, in Azure, in around 20 minutes.

Watch On-Demand
The Future of Chocolatey CLI

Livestream from
Thursday, 04 August 2022

Join Paul and Gary to hear more about the plans for the Chocolatey CLI in the not so distant future. We'll talk about some cool new features, long term asks from Customers and Community and how you can get involved!

Watch On-Demand
Hacktoberfest Tuesdays 2022

Livestreams from
October 2022

For Hacktoberfest, Chocolatey ran a livestream every Tuesday! Re-watch Cory, James, Gary, and Rain as they share knowledge on how to contribute to open-source projects such as Chocolatey CLI.

Watch On-Demand
Chocolatey Product Spotlight: Chocolatey 1.2.0 and Chocolatey Licensed Extension 5.0.0

Livestream from
Thursday, 03 November 2022

Join Paul and Gary for this months Chocolatey product livestream where we look at the latest release of Chocolatey 1.2.0, Chocolatey Licensed Extension 5.0.0 and shine a spotlight on the new hook scripts functionality. This opens up so many possibilities for Chocolatey CLI users!

Watch On-Demand
Chocolatey Coding Livestream

Livestream from
Tuesday, 29 November 2022

Join Josh as he adds the ability to manage Chocolatey GUI config and features with the Chocolatey Ansible Collection.

Watch On-Demand
Introduction into Chocolatey with Veeam

Webinar from
Tuesday, 13 December 2022

Join Gary, Paul, and Maurice as they introduce and demonstrate how to use Chocolatey! Questions will be answered live in an Ask Me Anything format.

Watch On-Demand

Nexus Repository OSS

  • 1
  • 2
  • 3

3.49.0.02 | Updated: 07 Mar 2023

Downloads:

22,783

Downloads of v 3.49.0.02:

301

Maintainer(s):

Software Author(s):

  • Sonatype

Nexus Repository OSS 3.49.0.02

  • 1
  • 2
  • 3

This Package Contains an Exempted Check

Not All Tests Have Passed


Validation Testing Passed


Verification Testing Exemption:

This package has been having issues with the verifier machine's network configuration since the 2019 update.

It has been verified on several other machines.

Details

Scan Testing Successful:

No detections found in any package files

Details
Learn More

Deployment Method: Individual Install, Upgrade, & Uninstall

To install Nexus Repository OSS, run the following command from the command line or from PowerShell:

>

To upgrade Nexus Repository OSS, run the following command from the command line or from PowerShell:

>

To uninstall Nexus Repository OSS, run the following command from the command line or from PowerShell:

>

Deployment Method:

NOTE

This applies to both open source and commercial editions of Chocolatey.

1. Enter Your Internal Repository Url

(this should look similar to https://community.chocolatey.org/api/v2/)


2. Setup Your Environment

1. Ensure you are set for organizational deployment

Please see the organizational deployment guide

2. Get the package into your environment

  • Open Source or Commercial:
    • Proxy Repository - Create a proxy nuget repository on Nexus, Artifactory Pro, or a proxy Chocolatey repository on ProGet. Point your upstream to https://community.chocolatey.org/api/v2/. Packages cache on first access automatically. Make sure your choco clients are using your proxy repository as a source and NOT the default community repository. See source command for more information.
    • You can also just download the package and push it to a repository Download

3. Copy Your Script

choco upgrade nexus-repository -y --source="'INTERNAL REPO URL'" [other options]

See options you can pass to upgrade.

See best practices for scripting.

Add this to a PowerShell script or use a Batch script with tools and in places where you are calling directly to Chocolatey. If you are integrating, keep in mind enhanced exit codes.

If you do use a PowerShell script, use the following to ensure bad exit codes are shown as failures:


choco upgrade nexus-repository -y --source="'INTERNAL REPO URL'" 
$exitCode = $LASTEXITCODE

Write-Verbose "Exit code was $exitCode"
$validExitCodes = @(0, 1605, 1614, 1641, 3010)
if ($validExitCodes -contains $exitCode) {
  Exit 0
}

Exit $exitCode

- name: Install nexus-repository
  win_chocolatey:
    name: nexus-repository
    version: '3.49.0.02'
    source: INTERNAL REPO URL
    state: present

See docs at https://docs.ansible.com/ansible/latest/modules/win_chocolatey_module.html.


chocolatey_package 'nexus-repository' do
  action    :install
  source   'INTERNAL REPO URL'
  version  '3.49.0.02'
end

See docs at https://docs.chef.io/resource_chocolatey_package.html.


cChocoPackageInstaller nexus-repository
{
    Name     = "nexus-repository"
    Version  = "3.49.0.02"
    Source   = "INTERNAL REPO URL"
}

Requires cChoco DSC Resource. See docs at https://github.com/chocolatey/cChoco.


package { 'nexus-repository':
  ensure   => '3.49.0.02',
  provider => 'chocolatey',
  source   => 'INTERNAL REPO URL',
}

Requires Puppet Chocolatey Provider module. See docs at https://forge.puppet.com/puppetlabs/chocolatey.


4. If applicable - Chocolatey configuration/installation

See infrastructure management matrix for Chocolatey configuration elements and examples.

Package Approved

This package was approved as a trusted package on 07 Mar 2023.

Description

Free open source version of popular Nexus Repository for binary artifacts including first class Nuget support..
Free OSS version supports advanced access control (groups, roles), LDAP and per-user api keys.
Nexus product does not have a built-in web gallery for components.

ATTENTION BREAKING CHANGE FOR UPGRADES FROM VERSIONS BEFORE 3.3.2.02
Nexus no longer provided a setup.exe for installing Nexus Repository 3.x on Windows.
If you previously installed this with a package that used a setup.exe, you must manually uninstall it first (use choco uninstall nexus-repository if you used Chocolatey to install it). Once you are on 3.3.2.02 or later, upgrades will work smoothly.

This package supports the following parameters:

-params '"/Port:8081"' (default: 8081)
Specify what port Nexus should listen on.

-params "'/BackupSslConfig'"
Ensures that the ssl configuration survives an upgrade

-params "'/BackupLocation'"
Species the path to backup ssl configuration to during upgrade

-params "'/Fqdn" (default:hostname)
The fqdn that matches the subject you are using for your Nexus instance


tools\chocolateyinstall.ps1
$ErrorActionPreference = 'Stop'
$toolsDir = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
$version = '3.49.0-02'
$url64 = 'https://sonatype-download.global.ssl.fastly.net/repository/downloads-prod-group/3/nexus-3.49.0-02-win64.zip'
$checksum64 = 'AAD244BC6F145BDE76EDC35D8EEA44069E093387AE97A38E15D1D1AE24E2B240'
$checksumType64 = 'SHA256'
$validExitCodes = @(0)
Import-Module (Join-Path $toolsDir 'supportingfunctions.psm1')

$name = $env:Computername
$domainName = $env:USERDOMAIN

$hostName = if (-not $name.endswith($domainName)) {
  "$name.$domainName"
}
else {
  $name
}

$packageName = $env:ChocolateyPackagename

$osBits = Get-ProcessorBits

If (!($osBits -eq 64)) {
  Throw "Sonatype Nexus Repository 3.0 and greater only supports 64-bit Windows."
}

$nexusVersionedFolder = "nexus-$version"
$targetFolder = "$env:programdata\nexus"
$extractFolder = "$env:temp\NexusExtract"
$targetDataFolder = "$env:programdata\sonatype-work"
$nexusConfigFile = "$TargetDataFolder\nexus3\etc\nexus.properties"
$serviceName = 'nexus'
$nexusPort = '8081'

$pp = Get-PackageParameters

if ($pp['Fqdn']) {
  $hostname = $pp['Fqdn']
}
  
if ($pp.Port) {
  $nexusPort = $pp.Port
  Write-Host "/Port was used, Nexus will listen on port $NexusPort."
}

If (Test-Path "$env:ProgramFiles\nexus\bin") {
  Throw "Previous version of Nexus 3 installed by setup.exe is present, please uninstall before running this package."
}

If ((Get-Service $serviceName -ErrorAction SilentlyContinue)) {
  Write-Warning "Nexus web app is already present, shutting it down so that we can upgrade it."
  Get-Service $serviceName | Stop-Service -Force
}

if ($pp['BackupSslConfig']) {
  if ($pp['BackupLocation']) {
    Backup-NexusSSL -BackupLocation $pp['BackupLocation']
  }

  else {
    Backup-NexusSSL
  }
}

If (Test-Path "$ExtractFolder") { 
  Remove-Item "$ExtractFolder" -Recurse -Force 
}

$packageArgs = @{
  PackageName    = $packageName
  unzipLocation  = $ExtractFolder
  url64          = $url64
  checksum64     = $checksum64
  checksumType64 = $checksumType64
}

Install-ChocolateyZipPackage @packageArgs

#$VerbosePreference = Continue
Write-Host "Copying files to '$TargetFolder' with overwrite"
If (Test-Path "$TargetFolder") { 
  Copy-Item "$ExtractFolder\$nexusversionedfolder\*" "$TargetFolder" -Force -Recurse
}
else {
  Copy-Item "$ExtractFolder\$nexusversionedfolder" "$TargetFolder" -Force -Recurse
}

If (!(Test-Path "$TargetDataFolder")) {
  Move-Item "$extractfolder\sonatype-work" "$TargetDataFolder"
}
else {
  Write-Warning "`"$TargetDataFolder`" already exists, not overwriting, residual data from previous installs will not be reset."
}

Remove-Item "$ExtractFolder" -Force -Recurse

$processArgs = @{
  ExeToRun       = "$TargetFolder\bin\nexus.exe"
  Statements     = "/install $servicename"
  validExitCodes = $validExitCodes
}

Start-ChocolateyProcessAsAdmin @processArgs

if ($pp['BackupSslConfig']) {
  if ($pp['BackupLocation']) {
    Restore-NexusSSL -BackupLocation $pp['BackupLocation']
  }

  else {
    Restore-NexusSSL
  }
}

#Update Port
If ($nexusPort -ne '8081') {
  If (Test-Path "$NexusConfigFile") {
    Write-Host "Configuring Nexus to listen on port $nexusPort."
    (Get-Content "$NexusConfigFile") -replace "^#\s*application-port=.*$", "application-port=$nexusPort" |
    Set-Content "$NexusConfigFile"
  }
  else {
    Write-Warning "Cannot find `"$NexusConfigFile`", skipping configuring Nexus to listen on port $nexusPort."
  }
}

$service = Start-Service $serviceName -PassThru

If ($Service.Status -ne 'Running') {
  Write-Warning "The Nexus Repository service ($serviceName) did not start."
}
else {
  #Even though windows reports service is ready - web url will not respond until Nexus is actually ready to serve content
  #We need to use this method to collect the port number so we can properly test the website has returned OK.
  $nexusScheme, $portConfigLine = if ($pp['BackupSSLConfig']) {
    # This is to combat Package Internalizer's over-enthusiastic URL matching
    ('http' + 's'), 'application-port-ssl'
  } else {
    'http', 'application-port'
  }

  # As the service is started, this should be present momentarily
  $Timer = [System.Diagnostics.Stopwatch]::StartNew()
  while (-not ($ConfigPresent = Test-Path $NexusConfigFile) -and $Timer.Elapsed.TotalSeconds -le 60) {
    Write-Verbose "Waiting for '$($NexusConfigFile)' to become available ($($Timer.Elapsed.TotalSeconds) seconds waited)..."
    Start-Sleep -Seconds 5
  }

  if (-not $ConfigPresent) {
    Write-Warning "Expected Nexus Config file '$($NexusConfigFile)' is not present."
    $nexusPath = '/'
  } else {
    $nexusPort = (Get-Content $NexusConfigFile | Where-Object {
      $_ -match $portConfigLine
    }).Split('=')[-1]

    $nexusPath = (Get-Content $NexusConfigFile | Where-Object {
      $_ -match "nexus-context-path"
    }).Split("=")[-1]
  }

  $nexusUri = "$($nexusScheme)://$($hostname):$($nexusPort)$($nexusPath)"

  Write-Host "Waiting on Nexus Web UI to be available at '$($nexusUri)'"
  while ($response.StatusCode -ne '200' -and $Timer.Elapsed.TotalMinutes -lt 3) {
    try {
      $response = Invoke-WebRequest -Uri $nexusUri -UseBasicParsing
    } catch {
      Write-Verbose "Waiting on Nexus Web UI to be available at '$($nexusUri)'"
      Start-Sleep -Seconds 1
    }
  }

  $Timer = $null

  if ($Response.StatusCode -eq '200') {
    Write-Host "Nexus is ready!"
  } else {
    Write-Error "Nexus did not respond to requests at '$($nexusUri)' within 3 minutes of the service being started."
  }
}
$generatedAdminPasswordFile = "$targetDataFolder\nexus3\admin.password"
$outputString = @"

*******************************************************************************************
*
*  You MAY receive the error 'localhost refused to connect.' until Nexus is fully started.
*
*  For new installs, you must login as admin to complete some setup steps
*  You can manage the repository by typing 'start http://$($hostname):$NexusPort'
*
*  The default user is 'admin'
*  ADMIN PASSWORD:
*    NEW INSTALLS: The password generated for your instance is recorded
*       in '$generatedAdminPasswordFile'
*    UPGRADES/REINSTALLS: If you upgraded (or uninstalled and reinstalled) without cleaning
*      up $targetDataFolder - the password will be the same as it was before and the password file
*      will not exist.
*    RESET PASSWORD WITH INSTALL: Uninstall Nexus and remove the directory '$targetDataFolder'
*      and then reinstall.  This time a password file will be generated.
*
*  Nexus availability is controlled via the service `"$servicename`"
*  Use the following command to open port $NexusPort for access from off this machine (one line):
*   netsh advfirewall firewall add rule name=`"Nexus Repository`" dir=in action=allow
*   protocol=TCP localport=$NexusPort
*******************************************************************************************
"@

Write-Warning $outputString
tools\chocolateyuninstall.ps1
$ErrorActionPreference = 'Stop'
$serviceName = 'nexus'
$installFolder = "$env:programdata\Nexus"
$validExitCodes = @(0)

if (Test-Path "$installfolder\bin\nexus.exe") {
  if (Get-Process $serviceName -ErrorAction SilentlyContinue) {
    Get-Process $serviceName | Stop-Process -Force
  }

  if (Get-Service $serviceName -ErrorAction SilentlyContinue){
    Stop-Service $serviceName
  }

  Start-Sleep -Seconds 5
  
  $processArgs = @{
    ExeToRun = "$installFolder\bin\nexus.exe"
    Statements = "/uninstall $servicename"
    validExitCodes = $validExitCodes
  }
  Start-ChocolateyProcessAsAdmin  @processArgs
  Remove-item  "$installfolder" -recurse -force
}
else {
  Write-warning "It appears that the uninstall may have been run outside of chocolatey, skipping..."
}
tools\supportingfunctions.psm1
Function Backup-NexusSSL {
  [CmdletBinding()]
  Param(
    [Parameter()]
    [String]
    $BackupLocation = $(Join-Path $env:UserProfile "NexusSSLBackup")
  )

  begin {

    if (-not (Test-Path $BackupLocation)) {
      Write-Host "Creating SSL Backup location"
      $null = New-Item $BackupLocation -ItemType Directory
    }

  }

  process {

    if (Test-Path "$env:ProgramData\nexus\etc\ssl\keystore.jks") {
      Copy-Item "$env:ProgramData\nexus\etc\ssl\keystore.jks" $BackupLocation
    }
    
    if (Test-Path "$env:ProgramData\nexus\etc\jetty\jetty-https.xml") {
      Copy-Item "$env:ProgramData\nexus\etc\jetty\jetty-https.xml" $BackupLocation
    }

  }


}

Function Restore-NexusSSL {
  [CmdletBinding()]
  Param(
    [Parameter()]
    [String]
    $BackupLocation = $(Join-Path $env:UserProfile "NexusSSLBackup")
  )

  process {
    Write-Host "Shutting down nexus Service to re-apply ssl configuration"
    $null = Stop-Service nexus

    Write-Host "Reapplying SSL Configuration"
    if (Test-Path "$BackupLocation\keystore.jks") {
      Copy-Item "$BackupLocation\keystore.jks" "$env:ProgramData\nexus\etc\ssl"
    }
    
    if (Test-Path "$BackupLocation\jetty-https.xml") {
      Copy-Item "$BackupLocation\jetty-https.xml" "$env:ProgramData\nexus\etc\jetty"
    }

  Write-Host "Nexus is now available with the restored SSL configuration"

  }
}

Log in or click on link to see number of positives.

In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).

Chocolatey Pro provides runtime protection from possible malware.

Add to Builder Version Downloads Last Updated Status
Nexus Repository OSS 3.48.0.01 128 Monday, February 27, 2023 Approved
Nexus Repository OSS 3.47.1.01 9 Tuesday, February 14, 2023 Approved
Nexus Repository OSS 3.47.0.01 8 Thursday, February 9, 2023 Approved
Nexus Repository OSS 3.46.0.01 15 Tuesday, January 31, 2023 Approved
Nexus Repository OSS 3.45.0.01 17 Wednesday, December 28, 2022 Approved
Nexus Repository OSS 3.43.0.01 1242 Wednesday, November 9, 2022 Approved
Nexus Repository OSS 3.41.1.01 964 Saturday, August 20, 2022 Exempted
Nexus Repository OSS 3.41.0.01 390 Thursday, July 28, 2022 Approved
Nexus Repository OSS 3.40.1.01 553 Monday, June 27, 2022 Exempted
Nexus Repository OSS 3.40.0.03 111 Thursday, June 23, 2022 Exempted
Nexus Repository OSS 3.39.0.01 461 Monday, May 23, 2022 Approved
Nexus Repository OSS 3.38.1.01 926 Wednesday, March 30, 2022 Exempted
Nexus Repository OSS 3.38.0.01 176 Friday, March 4, 2022 Exempted
Nexus Repository OSS 3.37.3.02 1185 Thursday, December 30, 2021 Exempted
Nexus Repository OSS 3.37.1.01 222 Tuesday, December 21, 2021 Exempted
Nexus Repository OSS 3.37.0.01 341 Monday, November 29, 2021 Exempted
Nexus Repository OSS 3.36.0.01 292 Thursday, November 18, 2021 Approved
Nexus Repository OSS 3.34.1.01 606 Friday, September 24, 2021 Exempted
Nexus Repository OSS 3.31.1.01 900 Wednesday, July 7, 2021 Approved
Nexus Repository OSS 3.31.0.01 232 Tuesday, June 22, 2021 Approved
Nexus Repository OSS 3.30.0.01 645 Thursday, April 29, 2021 Approved
Nexus Repository OSS 3.29.2.02 719 Wednesday, February 10, 2021 Approved
Nexus Repository OSS 3.29.1.01 339 Wednesday, January 6, 2021 Approved
Nexus Repository OSS 3.27.0.03 617 Friday, September 11, 2020 Approved
Nexus Repository OSS 3.25.1.02 363 Thursday, July 30, 2020 Approved
Nexus Repository OSS 3.22.1.02 627 Monday, April 20, 2020 Approved
Nexus Repository OSS 3.22.0.02 203 Saturday, April 11, 2020 Approved
Nexus Repository OSS 3.21.2.03 225 Friday, March 27, 2020 Approved
Nexus Repository OSS 3.21.1.01 346 Saturday, March 14, 2020 Approved
Nexus Repository OSS 3.19.1.20191118 653 Tuesday, November 19, 2019 Approved
Nexus Repository OSS 3.19.1.01 305 Sunday, October 13, 2019 Approved
Nexus Repository OSS 3.18.1.01 335 Saturday, August 24, 2019 Approved
Nexus Repository OSS 3.15.2.01 700 Thursday, March 14, 2019 Approved
Nexus Repository OSS 3.14.0.4 405 Thursday, January 10, 2019 Approved
Nexus Repository OSS 3.12.1.1 719 Thursday, July 19, 2018 Approved
Nexus Repository OSS 3.11.0.1 425 Wednesday, May 9, 2018 Approved
Nexus Repository OSS 3.9.0.20180301 370 Friday, March 23, 2018 Approved
Nexus Repository OSS 3.9.0.01 345 Saturday, March 10, 2018 Approved
Nexus Repository OSS 3.8.0.02 348 Thursday, February 22, 2018 Approved
Nexus Repository OSS 3.7.1.02 435 Friday, December 29, 2017 Approved
Nexus Repository OSS 3.6.0.02 436 Thursday, November 2, 2017 Approved
Nexus Repository OSS 3.5.2.01 454 Saturday, September 23, 2017 Approved
Nexus Repository OSS 3.3.2.02 619 Tuesday, June 27, 2017 Approved
Nexus Repository OSS 3.0.2.02 855 Saturday, September 24, 2016 Approved
Nexus Repository OSS 3.0.1.01 487 Saturday, July 30, 2016 Approved
Nexus Repository OSS 3.0.0.03 437 Friday, April 8, 2016 Approved
Nexus Repository OSS 3.0.0-m7-1 413 Friday, February 26, 2016 Exempted
Nexus Repository OSS 3.0.0-m7 434 Friday, February 26, 2016 Exempted
Nexus Repository OSS 2.12.0.01 427 Friday, February 26, 2016 Approved

Discussion for the Nexus Repository OSS Package

Ground Rules:

  • This discussion is only about Nexus Repository OSS and the Nexus Repository OSS package. If you have feedback for Chocolatey, please contact the Google Group.
  • This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
  • The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
  • Tell us what you love about the package or Nexus Repository OSS, or tell us what needs improvement.
  • Share your experiences with the package, or extra configuration or gotchas that you've found.
  • If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.
comments powered by Disqus