Nexus Repository OSS

3.19.1.01 | Updated: 10/13/2019

Downloads:

5,915

Downloads of v 3.19.1.01:

26

Maintainer(s):

Software Author(s):

  • Sonatype

Nexus Repository OSS 3.19.1.01

All Checks are Passing

2 Passing Test


Validation Testing Passed


Verification Testing Passed

Details

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 https://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. Enter your internal repository url

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

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'" 
$exitCode = $LASTEXITCODE

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
  win_chocolatey:
    name: nexus-repository
    state: present
    version: 3.19.1.01
    source: STEP 3 URL

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

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


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

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


Chocolatey::Ensure-Package
(
    Name: nexus-repository,
    Version: 3.19.1.01,
    Source: STEP 3 URL
);

Requires Otter Chocolatey Extension. See docs at https://inedo.com/den/otter/chocolatey.


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

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


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

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


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

See docs at https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.chocolatey.html.

5. If applicable - Chocolatey configuration/installation

See infrastructure management matrix for Chocolatey configuration elements and examples.

This package was approved as a trusted package on 10/13/2019.

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.


tools\chocolateyinstall.ps1

$packageid = "nexus-repository"
$version = '3.19.1-01'
$url = "https://download.sonatype.com/nexus/3/nexus-$version-win64.zip"
$checksum = '44B8D1175932EE95B4D8CC06AE5F15DFA609AF0B'
$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\nexus.properties"
$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"
}
else 
{
  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
  }
  else 
  {
    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."
}
else 
{
  #Even though windows reports service is ready - web url will not respond until Nexus is actually ready to serve content
  Start-Sleep 120
}

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 "*  You can manage the repository by visiting http://localhost:$NexusPort"
Write-Warning "*  The default user is 'admin' with password 'admin123'"
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 "*******************************************************************************************"
tools\chocolateyuninstall.ps1

$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
}
Else
{
  Write-warning "It appears that the uninstall may have been run outside of chocolatey, skipping..."
}

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 3.18.1.01 162 Saturday, August 24, 2019 Approved
Nexus Repository OSS 3.15.2.01 518 Thursday, March 14, 2019 Approved
Nexus Repository OSS 3.14.0.4 281 Thursday, January 10, 2019 Approved
Nexus Repository OSS 3.12.1.1 569 Thursday, July 19, 2018 Approved
Nexus Repository OSS 3.11.0.1 284 Wednesday, May 9, 2018 Approved
Nexus Repository OSS 3.9.0.20180301 235 Friday, March 23, 2018 Approved
Nexus Repository OSS 3.9.0.01 204 Saturday, March 10, 2018 Approved
Nexus Repository OSS 3.8.0.02 197 Thursday, February 22, 2018 Approved
Nexus Repository OSS 3.7.1.02 294 Friday, December 29, 2017 Approved

https://help.sonatype.com/repomanager3/release-notes/2019-release-notes
Packaging
3.18.1.01
- uses open JRE via dependency on adoptopenjdkjre
3.9.0.20180301
- Supports "Port" parameter for changing nexus repository listening port
3.6.0.02
- improved service startup checking
- cleaner uninstall
ATTENTION BRAKING 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 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 3.3.2.02 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