Nexus Repository OSS | Updated: 30 Jul 2020



Downloads of v



Software Author(s):

  • Sonatype

Nexus Repository OSS

All Checks are Passing

2 Passing Test

Validation Testing Passed

Verification Testing Passed


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:


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

1. Ensure you are set for organizational deployment

Please see the organizational deployment guide

  • 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 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. Enter your internal repository url

(this should look similar to

4. Choose your deployment method:

choco upgrade nexus-repository -y --source="'STEP 3 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="'STEP 3 URL'"

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

Exit $exitCode

- name: Ensure nexus-repository installed
    name: nexus-repository
    state: present
    source: STEP 3 URL

See docs at

Coming early 2020! Central Managment Reporting available now! More information...

chocolatey_package 'nexus-repository' do
  action    :install
  version  ''
  source   'STEP 3 URL'

See docs at

    Name: nexus-repository,
    Source: STEP 3 URL

Requires Otter Chocolatey Extension. See docs at

cChocoPackageInstaller nexus-repository
   Name     = 'nexus-repository'
   Ensure   = 'Present'
   Version  = ''
   Source   = 'STEP 3 URL'

Requires cChoco DSC Resource. See docs at

package { 'nexus-repository':
  provider => 'chocolatey',
  ensure   => '',
  source   => 'STEP 3 URL',

Requires Puppet Chocolatey Provider module. See docs at

salt '*' chocolatey.install nexus-repository version="" source="STEP 3 URL"

See docs at

5. If applicable - Chocolatey configuration/installation

See infrastructure management matrix for Chocolatey configuration elements and examples.

Private CDN cached downloads available for licensed customers. Never experience 404 breakages again! Learn more...

This package was approved as a trusted package on 30 Jul 2020.


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.


$packageid = "nexus-repository" 
$version = '3.25.1-02'
$url = "$"
$checksum = 'b31de7c3c8f162e3699cd5c9bcde654dc5edb4f1'
$checksumtype = 'SHA1'
$silentargs = "-q -console -dir `"$installfolder`""
$validExitCodes = @(0)

$packageName= 'nexus-repository'
$toolsDir   = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"

$OSBits = Get-ProcessorBits

If (!(Get-ProcessorBits -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\"
$servicename = 'nexus'
$NexusPort = '8081'

$pp = Get-PackageParameters
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 ([bool](Get-Service $servicename -ErrorAction SilentlyContinue))
  Write-Warning "Nexus web app is already present, shutting it down so that we can upgrade it."
  Stop-Service $servicename -force

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

Install-ChocolateyZipPackage -PackageName $packageName -unziplocation "$ExtractFolder" -url $url -checksum $checksum -checksumtype $checksumtype -url64 $url -checksum64 $checksum -checksumtype64 $checksumtype

Write-Host "Copying files to '$TargetFolder' with overwrite"
#$VerbosePreference = Continue
Copy-Item "$ExtractFolder\$nexusversionedfolder" "$TargetFolder" -Force -Recurse
#$VerbosePreference = SilentlyContinue

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

Remove-Item "$ExtractFolder" -Force -Recurse

Start-ChocolateyProcessAsAdmin -ExeToRun "$TargetFolder\bin\nexus.exe" -Statements "/install $servicename" -validExitCodes $validExitCodes

#Update Port
If ($NexusPort -ne '8081')
  $service = Start-Service $servicename -PassThru
  $Service.WaitForStatus('Running', '00:02:00')
  Start-Sleep 120
  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"
    Stop-Service $servicename
    Write-Warning "Cannot find `"$NexusConfigFile`", skipping configuring Nexus to listen on port $NexusPort."

$service = Start-Service $servicename -PassThru
Write-Host "Waiting for Nexus service to be completely ready"
$Service.WaitForStatus('Running', '00:02:00')

If ($Service.Status -ine 'Running') 
  Write-Warning "The Nexus Repository service ($servicename) did not start."
  #Even though windows reports service is ready - web url will not respond until Nexus is actually ready to serve content
  Start-Sleep 120

$generatedadminpasswordfile = "$TargetDataFolder\nexus3\admin.password"
If (Test-Path $generatedadminpasswordfile) {
  $passwddata = Get-Content $generatedadminpasswordfile

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

$validExitCodes = @(0)

$packageName= 'nexus-repository'
$servicename = 'nexus'
$installfolder = "$env:programdata\Nexus"
$toolsDir   = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
$validExitCodes = @(0)

If (Test-Path "$installfolder\bin\nexus.exe")
  Stop-Service nexus -force
  Start-ChocolateyProcessAsAdmin -ExeToRun "$installfolder\bin\nexus.exe" -Statements "/uninstall $servicename" -validExitCodes $validExitCodes
  Remove-item  "$installfolder" -recurse -force
  Write-warning "It appears that the uninstall may have been run outside of chocolatey, skipping..."

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.

Version Downloads Last Updated Status
Nexus Repository OSS 517 Monday, April 20, 2020 Approved
Nexus Repository OSS 111 Saturday, April 11, 2020 Approved
Nexus Repository OSS 129 Friday, March 27, 2020 Approved
Nexus Repository OSS 215 Saturday, March 14, 2020 Approved
Nexus Repository OSS 527 Tuesday, November 19, 2019 Approved
Nexus Repository OSS 177 Sunday, October 13, 2019 Approved
Nexus Repository OSS 195 Saturday, August 24, 2019 Approved
Nexus Repository OSS 554 Thursday, March 14, 2019 Approved
Nexus Repository OSS 315 Thursday, January 10, 2019 Approved
- messaging at end of install has been adjusted to accurately reflect new admin password behavior
- uses open JRE via dependency on adoptopenjdkjre
- Supports "Port" parameter for changing nexus repository listening port
- improved service startup checking
- cleaner uninstall
Nexus no longer provided a setup.exe for installing Nexus Repository 3.x on Windows.
If you previously installed with a package that used the setup.exe, you must manually uninstall it first. (you can use chocolatey uninstall if installed by chocolatey)
Once you are on or later, upgrades will work smoothly.

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