Unpacking Software Livestream

Join our monthly Unpacking Software livestream to hear about the latest news, chat and opinion on packaging, software deployment and lifecycle management!

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

Chocolatey Coding Livestream

Join us for the Chocolatey Coding Livestream, where members of our team dive into the heart of open source development by coding live on various Chocolatey projects. Tune in to witness real-time coding, ask questions, and gain insights into the world of package management. Don't miss this opportunity to engage with our team and contribute to the future of Chocolatey!

Learn More

Calling All Chocolatiers! Whipping Up Windows Automation with Chocolatey Central Management

Webinar from
Wednesday, 17 January 2024

We are delighted to announce the release of Chocolatey Central Management v0.12.0, featuring seamless Deployment Plan creation, time-saving duplications, insightful Group Details, an upgraded Dashboard, bug fixes, user interface polishing, and refined documentation. As an added bonus we'll have members of our Solutions Engineering team on-hand to dive into some interesting ways you can leverage the new features available!

Watch On-Demand
Chocolatey Community Coffee Break

Join the Chocolatey Team as we discuss all things Community, what we do, how you can get involved and answer your Chocolatey questions.

Watch The Replays
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

Nexus Repository OSS

This is not the latest version of Nexus Repository OSS available.

  • 1
  • 2
  • 3

3.29.1.01 | Updated: 06 Jan 2021

Downloads:

30,305

Downloads of v 3.29.1.01:

365

Maintainer(s):

Software Author(s):

  • Sonatype

Nexus Repository OSS 3.29.1.01

This is not the latest version of Nexus Repository OSS available.

  • 1
  • 2
  • 3

All Checks are Passing

3 Passing Tests


Validation Testing Passed


Verification Testing Passed

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'" --version="'3.29.1.01'" [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'" --version="'3.29.1.01'" 
$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.29.1.01'
    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.29.1.01'
end

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


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

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


package { 'nexus-repository':
  ensure   => '3.29.1.01',
  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.

NOTE

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

Package Approved

This package was approved as a trusted package on 06 Jan 2021.

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.29.1-01'
$url = "https://download.sonatype.com/nexus/3/nexus-$version-win64.zip"
$checksum = '9a6b6a492d88e01de477e372422975b43d86fc1b'
$checksumtype = 'SHA1'
$silentargs = "-q -console -dir `"$installfolder`""
$validExitCodes = @(0)

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

$OSBits = Get-ProcessorBits

. $toolsDir/supportingfunctions.ps1


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'
$WarningCycles = 3
$WarningSeconds = 120

$pp = Get-PackageParameters
  
if ($pp.Port) {
  $NexusPort = $pp.Port
  Write-Host "/Port was used, Nexus will listen on port $NexusPort."
}

If ($pp.WarningCycles) {
  $WarningCycles = $pp.WarningCycles
}

If ($pp.WarningSeconds) {
  $WarningCycles = $pp.WarningSeconds
}


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."
  Ensure-ProcessesAndServicesAreStopped nexus -WarningCycles $WarningCycles -WarningSeconds $WarningSeconds -ForceDown
}

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

#$VerbosePreference = Continue
Write-Host "Copying files to '$TargetFolder' with overwrite"
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
}


$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 "*******************************************************************************************"
tools\chocolateyuninstall.ps1

$validExitCodes = @(0)

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

. $toolsDir/supportingfunctions.ps1

If (Test-Path "$installfolder\bin\nexus.exe")
{
  Ensure-ProcessesAndServicesAreStopped nexus -WarningCycles $WarningCycles -WarningSeconds $WarningSeconds -ForceDown
  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..."
}
tools\supportingfunctions.ps1

Function Test-IfVarOrObjPropIsSetAndNotFalse {
  <#
  .SYNOPSIS
    Tests if a Variable or Object Property BOTH exists and is not $null and is not $False.
  .DESCRIPTION
    Allows a test for variables that can be commented, removed or set to $null to disable their functionality.
    Returns: $False if a Variable or Object Property either does not exist or is $null.
    IMPORTANT: The "$" character should NOT be included when calling this function.
    IMPORTANT: The function assumes an object property instead of a variable if the name given to it contains a "." character.
    IMPORTANT: If a non-existence object checked, $False is returned - becareful that your code does 
               not assume only the absence of the property.
  .COMPONENT
     pshTemplate
  .ROLE
     Core
  .PARAMETER Name
    Variable name with no "$".
  .EXAMPLE
    Test-IfVarOrObjPropIsSetAndNotFalse MyVariable
    Checks if the variable "MyVariable" exists and is not $null or $false.
    IMPORTANT: The "$" character should NOT be included when calling this function.
  .EXAMPLE
    Test-IfVarOrObjPropIsSetAndNotFalse MyObject.MyProperty
    Checks if the object property "MyObject.MyProperty" exists and is not $null or $false.
    IMPORTANT: The "$" character should NOT be included when calling this function.
    IMPORTANT: The function assumes an object property instead of a variable if the name given to it contains a "." character.
  .NOTES
    Test Verification: 
    SHOULD RETURN FALSE FOR [a] Non-existence, [b] Set to 0 (zero), [c] Set to $null, [d] Set to $False, [e] Set to ""
    FOR THESE DATA TYPES:
     Variable, Array, HashTable, Object.Property
  #> 
  [CmdletBinding()]
  param (
    [parameter(Mandatory=$True,Position=0)][string]$Name
  )
  $VariableIsNotNullNotFalseNotZero = $False
  
  if ($name.Contains(".")) {
    If (test-path ('variable:'+$name.remove($name.indexof(".")))) {
      $VariableIsNotNullNotFalseNotZero = [bool](Invoke-Expression "`$$name") 
    }
  } Else {
    If (test-path ('variable:'+$name)) {
      $VariableIsNotNullNotFalseNotZero = [bool](Get-Variable -Name $name -value) 
    }
  }
  
  return $VariableIsNotNullNotFalseNotZero
  }
Function Test-IfProcRunning ($ProcNames) {
  <#
  .SYNOPSIS
    Determines if one or more instances of any process on the list is running.
  .DESCRIPTION
    Determines if one or more instances of any process on the list is running.
    Returns $True if processes are running, $False if not.
  .PARAMETER ProcName
   Can be a string array or comma delimited string.  Can contain .exe extensions or follow PowerShell
   syntax and exclude extensions.
  .EXAMPLE
    Test-IfProcRunning @("notepad.exe","calc.exe")
  .EXAMPLE
    Test-IfProcRunning @("notepad","calc")
  .EXAMPLE
    Test-IfProcRunning "notepad.exe,calc.exe"
  .NOTES
    Author: Darwin Sanoy
    Modified: 4/4/2013
    Depends On: Write-Host()
  #> 
  # Convert string to array
  if ($ProcNames -is [System.String]) { 
  #Convert String to Array
  $ProcessNames = ($ProcNames.Split(','))
  } elseif ($ProcNames -is [System.Array]) {
  $ProcessNames = $ProcNames
  }
  
  #strip spaces and .exe if present
  for($i = 0; $i -lt $ProcessNames.count) {
  
  $ProcessNames[$i] = $ProcessNames[$i].replace(".exe","").trim()
  $i++
  }
  
  #ignore errors in case there are no instances of any given name
  $ErrorActionPreference = "SilentlyContinue"
  
  $ProcessInstances = @(get-process -ProcessName $ProcessNames).count
  
  Write-Host "Processes Running: $ProcessInstances total instances of processes with any of these names: $ProcessNames"
  
  if ($ProcessInstances -gt 0) {
  return $True
  } else {
  return $False
  }
  
} # End Function Test-IfProcRunning

Function Ensure-StopProcess ($ProcessNameList) {
<#
.SYNOPSIS
  Checks if one or more instance of named tasks are executing on this PC and terminates them.  Use Ensure-ProcessesAndServicesAreStopped instead.
.DESCRIPTION
  Closes all instances of all tasks in the list.
.COMPONENT
    pshTemplate
.ROLE
    Core-INTERNAL
.PARAMETER ProcName
  Can be a string array or comma delimited string.  Can contain .exe extensions or follow PowerShell
  syntax and exclude extensions.
.EXAMPLE
  Ensure-StopProcess @("notepad.exe","calc.exe")
.EXAMPLE
  Ensure-StopProcess @("notepad","calc")
.EXAMPLE
  Ensure-StopProcess "notepad.exe,calc.exe"
#> 

# Convert string to array
if ($ProcessNameList -is [System.String]) { 
#Convert String to Array
$ProcessNames = ($ProcessNameList.Split(','))
} elseif ($ProcessNameList -is [System.Array]) {
$ProcessNames = $ProcessNameList
}

#strip spaces and .exe if present
for($i = 0; $i -lt $ProcessNames.count; $i++) {
  $ProcessNames[$i] = $ProcessNames[$i].replace(".exe","").trim()
}

#ignore errors in case there are no instances of any given name
$ErrorActionPreference = "SilentlyContinue"

$ProcessItems = get-process -Name $ProcessNames -ea SilentlyContinue
$ProcessInstances = @($ProcessItems).Count

Write-Host "Attempting to close: $ProcessInstances total instances of processes with any of these names: $ProcessNames"

DebugMessage "Number of processes to terminate: $ProcessInstances"
if ($ProcessInstances) {
  DebugMessage "Attempting kill processes..."
  $ProcessItems | Stop-Process -Force
  start-sleep -seconds 2
}

if (@((get-process -Name $ProcessNames -ea SilentlyContinue)).count -gt 0) { 
  $EnsureStopProcess = -1
} else {
  $EnsureStopProcess = $ProcessInstances 
}
$ErrorActionPreference = "Stop"
Write-Host "Returning: $EnsureStopProcess (<#> = instances closed, 0 = no instances to close, -1 = did not close all instances)" 
return $EnsureStopProcess
} # End Function Ensure-StopProcess

Function Ensure-ProcessesAndServicesAreStopped {
<#
.SYNOPSIS
  Checks if a list of apps are running and presents user with message if they are.
  Safe to call even if none of the processes you give it are running.
.DESCRIPTION
  Returns true if the processes and services in the list are no longer running (no matter why they are not running)
  Services can be display name or registry name.
  Prompting does not apply to services, but the -Force parameter does.
  This function does comprehensive logging of the possible reasons for returning true.
  (e.g "No processes running", "User Successfully ended processes", "Processes were terminated forcefully"
  Important: If -Silent switch was used on script execution, msgboxtimed is silenced and therefore
  there is no delay at all on the FinalAction you requested.
  If you have a very stubborn service *that is a standalone EXE*, you can include it as both a service name and a process.
  It will [a] attempt to be stopped as a service, [b] Attempted to be forced down as a service, [c] have it's process terminated.
.PARAMETER ProcessAndServiceList
  List of processes and services to check.
  Processes with or without ".exe" extensions.
  Services can be display name or registry name.
  Generally services should *NOT* be killed via their EXE name, but use their service name for a proper shutdown.
  Can be set to a one of these global variables: $APS_OfficeAppsListCore or $APS_OfficeAppsListExhaustive
.PARAMETER ForceDown
  Will force processes down if the user is not able to end them.
  Will force services down if they do not come down on their own.
  Default: $False
.PARAMETER WarningCycles
  How many warning cycles to the user?
  Warning cycles are not displayed for services as users do not know how to end them.
  Default = 5.  
  Set to 0 for no warnings (silent operation).
.PARAMETER WarningSeconds
  How many seconds does each warning display?
  Default = 120.
.PARAMETER OverrideFriendlyAppNameList
  Normally the friendly name list of applications to ask the user to shutdown is taken from msgdisplay.xml.
  If this optional parameter is used to specify an array of strings, these will be displayed instead of the msgdisplay.xml list.
  This also ends up overrriding the language localization in msgdisplay.xml, as you must use the "CUSTOM" type rather than the "CLOSEAPP" message ID.
.EXAMPLE
  Ensure-ProcessesAndServicesAreStopped @("notepad.exe","calc.exe","Microsoft Office Service") -ForceDown
  Checks for Office core apps and notepad and calculator.
  Stops Microsoft Office Service (Office 365) by its display name "Microsoft Office Service"
  Warns 5 times and kills processes if user does not.
.EXAMPLE
  Ensure-ProcessesAndServicesAreStopped @("notepad.exe","calc.exe","OfficeSvc") -ForceDown -WarningCycles 8 
  TOffice core apps and notepad and calculator.
  Stops Microsoft Office Service (Office 365) by its registry name "OfficeSvc"
  Warns 8 times and kills processes if user does not.
.EXAMPLE
  Ensure-ProcessesAndServicesAreStopped "SuperCriticalProcessThatMustShutdowNormally.exe" -WarningCycles 10 -WarningSeconds 600
  Checks for "SuperCriticalProcessThatMustShutdowNormally.exe"
  Warns 5 times with a dialog that displays for 10 minutes each time) and returns false if process is not ended by user.
  IMPORTANT: Does NOT force processes down.
.EXAMPLE
  Ensure-ProcessesAndServicesAreStopped "ProcessUserCannotEnd.exe" -ForceDown -WarningCycles 0
  Terminates "ProcessUserCannotEnd.exe" without any warnings since user cannot end the process anyway.
.EXAMPLE
  Ensure-ProcessesAndServicesAreStopped @("IntegratedOffice.exe","Microsoft Office Service") -ForceDown
  The example shows the same service listed as a service name and an EXE name.
  The function will [a] attempt to be stopped it as a service, [b] atempt to force it down as a service, [c] terminate it's process.
.EXAMPLE
  Ensure-ProcessesAndServicesAreStopped @("abc.exe","xyz.exe") -ForceDown -OverrideFriendlyAppNameList @("Alphabet Software", "All Done Software")
  The example shows a custom msgdisplay.exe dialog with that asks that the software be shutdown - but lists the software in the -OverrideFriendlyAppNameList 
  rather than the list in msgdisplay.xml.
#> 
[CmdletBinding()]
param (
  [parameter(Mandatory=$True,Position=0)][string[]]$ProcessAndServiceList,
  [parameter(Mandatory=$False,Position=1)][switch]$ForceDown,
  [parameter(Mandatory=$False,Position=2)][int]$WarningCycles = 5,
  [parameter(Mandatory=$False,Position=3)][int]$WarningSeconds = 120,
  [parameter(Mandatory=$False,Position=4)][int]$SecondsToWaitForAllServices = 20,
  [parameter(Mandatory=$False,Position=5)][string[]]$OverrideFriendlyAppNameList
) 
#Request shutdown of Apps list
$ServicesReturnValue = $ProcsReturnValue = $False
$MyFunctionName = $myinvocation.MyCommand

  #Process any services in the list
  $ServicesInList = Get-Service $ProcessAndServiceList -ErrorAction SilentlyContinue
  If ($ServicesInList.Count) {
    #If there are any services in the list, stop them
    $InitialRunningServices = @($Servicesinlist | % {get-service $_.Displayname | where-object {$_.Status -eq "Running"}})
    If ($InitialRunningServices.Count -gt 0){
      Write-Host "$MyFunctionName : Found $($ServicesInList.count) services in list, of which $($InitialRunningServices.Count) are running.  Attempting to stop the following services:"
      $InitialRunningServices | Select -ExpandProperty DisplayName | Write-Host
      Stop-Service $InitialRunningServices -ErrorAction SilentlyContinue
      Start-Sleep -seconds $SecondsToWaitForAllServices
      $NonStoppingServices = @($InitialRunningServices | % {get-service $_.Displayname | where-object {$_.Status -eq "Running"}})
      If (($NonStoppingServices.count -gt 0) -and $ForceDown) {
        #If they didn't come down nicely, force them.
        Write-Host "$MyFunctionName : Some Services did not end voluntarily, forcing down the following services:"
        $NonStoppingServices | Select -ExpandProperty DisplayName | Write-Host
        $NonStoppingServices | Stop-Service -Force -ErrorAction SilentlyContinue
        Start-Sleep -seconds $SecondsToWaitForAllServices
        $NonStoppingServices = @($InitialRunningServices | % {get-service $_.Displayname | where-object {$_.Status -eq "Running"}})
      }
      If ($NonStoppingServices.count -gt 0) {
        Write-Host "$MyFunctionName : The following services did not stop after forcing:"
        $NonStoppingServices | Select -ExpandProperty DisplayName | Write-Host
        $ServicesReturnValue = $False
      } Else {
        Write-Host "$MyFunctionName : Stopped all $($ServicesInList.Count) services in list.  List: $ProcessAndServiceList"
        $ServicesReturnValue = $True
      }
    } else {
      Write-Host "$MyFunctionName : None of the $($ServicesInList.Count) in the list are running.  List: $ProcessAndServiceList"
      $ServicesReturnValue = $True
    }
  } else {
    Write-Host "$MyFunctionName : There are no services in this list: $ProcessAndServiceList"
    $ServicesReturnValue = $True
}

  if ($ProcessAndServiceList) {
  Write-Host "$MyFunctionName : Checking if any of these are running: $ProcessAndServiceList"
  
  if (Test-IfProcRunning $ProcessAndServiceList) {

    $j = 1
    while ((Test-IfProcRunning $ProcessAndServiceList) -and ($j -le $WarningCycles)) 
      {
      If (Test-IfVarOrObjPropIsSetAndNotFalse OverrideFriendlyAppNameList)  
        {
        #Use override friendly name list
        $TempMsgText = "[nl] Please close any applications in the below list:[nl]"
        ForEach ($FriendlyName in $OverrideFriendlyAppNameList)
          {
          $TempMsgText += "[nl]$FriendlyName"
          }
        Write-Host "Waiting $WarningSeconds seconds for the following to exit: $TempMsgText"
        Start-Sleep -Seconds $WarningSeconds
        }
      Else
        {
        Write-Host "Waiting for $WarningSeconds seconds"
        Start-Sleep -Seconds $WarningSeconds
        }
        if (-not (Test-IfProcRunning $ProcessAndServiceList)) {
          Write-Host "$MyFunctionName : User SUCCESSFULLY ended all processes in list: $ProcessAndServiceList"
          #Go back with true right now.
          $ProcsReturnValue = $True
        }
        $j++
      }
  } else {
    Write-Host "$MyFunctionName : No instances running of any processes in list: $ProcessAndServiceList"
    #Go back with true right now.
    $ProcsReturnValue = $True
  }
  if ((Test-IfProcRunning $ProcessAndServiceList) -and $ForceDown) 
    {
    Write-Host "$MyFunctionName : User did not end one or more process and -ForceDown was used, terminating processlist: $ProcessAndServiceList"
    $NumberClosed = Ensure-StopProcess($ProcessAndServiceList)
    if ($NumberClosed -eq -1) {
      $ProcsReturnValue = $False
    } else {
      Write-Host "$MyFunctionName : $NumberClosed Processes were forcefully terminated."
      #Go back with true right now.
      $ProcsReturnValue = $True
    }
    }
  }

  If ($ServicesReturnValue -and $ProcsReturnValue) {
    return $True
  } Else {
    return $False
  }
}
      

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.65.0.2 460 Wednesday, February 7, 2024 Approved
Nexus Repository OSS 3.64.0.4 422 Monday, January 15, 2024 Approved
Nexus Repository OSS 3.64.0.3 150 Wednesday, January 10, 2024 Approved
Nexus Repository OSS 3.63.0.1 383 Tuesday, December 5, 2023 Approved
Nexus Repository OSS 3.62.0.1 380 Wednesday, November 8, 2023 Approved
Nexus Repository OSS 3.60.0.2 664 Friday, September 8, 2023 Approved
Nexus Repository OSS 3.59.0.1 342 Wednesday, August 16, 2023 Approved
Nexus Repository OSS 3.58.1.2 337 Thursday, July 27, 2023 Approved
Nexus Repository OSS 3.58.1.1 217 Saturday, July 22, 2023 Approved
Nexus Repository OSS 3.58.0.1 151 Monday, July 17, 2023 Approved
Nexus Repository OSS 3.57.0.1 192 Thursday, July 6, 2023 Approved
Nexus Repository OSS 3.56.0.1 295 Monday, June 19, 2023 Approved
Nexus Repository OSS 3.55.0.01 228 Tuesday, June 6, 2023 Approved
Nexus Repository OSS 3.54.1.01 261 Tuesday, May 23, 2023 Approved
Nexus Repository OSS 3.53.1.02 194 Saturday, May 13, 2023 Approved
Nexus Repository OSS 3.53.0.01 224 Wednesday, May 3, 2023 Approved
Nexus Repository OSS 3.52.0.01 236 Wednesday, April 19, 2023 Approved
Nexus Repository OSS 3.51.0.01 262 Wednesday, April 5, 2023 Approved
Nexus Repository OSS 3.50.0.01 223 Monday, March 27, 2023 Approved
Nexus Repository OSS 3.49.0.02 343 Tuesday, March 7, 2023 Approved
Nexus Repository OSS 3.48.0.01 234 Monday, February 27, 2023 Approved
Nexus Repository OSS 3.47.1.01 32 Tuesday, February 14, 2023 Approved
Nexus Repository OSS 3.47.0.01 28 Thursday, February 9, 2023 Approved
Nexus Repository OSS 3.46.0.01 37 Tuesday, January 31, 2023 Approved
Nexus Repository OSS 3.45.0.01 48 Wednesday, December 28, 2022 Approved
Nexus Repository OSS 3.43.0.01 1275 Wednesday, November 9, 2022 Approved
Nexus Repository OSS 3.41.1.01 998 Saturday, August 20, 2022 Exempted
Nexus Repository OSS 3.41.0.01 416 Thursday, July 28, 2022 Approved
Nexus Repository OSS 3.40.1.01 577 Monday, June 27, 2022 Exempted
Nexus Repository OSS 3.40.0.03 133 Thursday, June 23, 2022 Exempted
Nexus Repository OSS 3.39.0.01 491 Monday, May 23, 2022 Approved
Nexus Repository OSS 3.38.1.01 954 Wednesday, March 30, 2022 Exempted
Nexus Repository OSS 3.38.0.01 202 Friday, March 4, 2022 Exempted
Nexus Repository OSS 3.37.3.02 1208 Thursday, December 30, 2021 Exempted
Nexus Repository OSS 3.37.1.01 244 Tuesday, December 21, 2021 Exempted
Nexus Repository OSS 3.37.0.01 371 Monday, November 29, 2021 Exempted
Nexus Repository OSS 3.36.0.01 314 Thursday, November 18, 2021 Approved
Nexus Repository OSS 3.34.1.01 629 Friday, September 24, 2021 Exempted
Nexus Repository OSS 3.31.1.01 922 Wednesday, July 7, 2021 Approved
Nexus Repository OSS 3.31.0.01 251 Tuesday, June 22, 2021 Approved
Nexus Repository OSS 3.30.0.01 663 Thursday, April 29, 2021 Approved
Nexus Repository OSS 3.29.2.02 748 Wednesday, February 10, 2021 Approved
Nexus Repository OSS 3.29.1.01 365 Wednesday, January 6, 2021 Approved
Nexus Repository OSS 3.27.0.03 656 Friday, September 11, 2020 Approved
Nexus Repository OSS 3.25.1.02 388 Thursday, July 30, 2020 Approved
Nexus Repository OSS 3.22.1.02 654 Monday, April 20, 2020 Approved
Nexus Repository OSS 3.22.0.02 231 Saturday, April 11, 2020 Approved
Nexus Repository OSS 3.21.2.03 266 Friday, March 27, 2020 Approved
Nexus Repository OSS 3.21.1.01 371 Saturday, March 14, 2020 Approved
Nexus Repository OSS 3.19.1.20191118 679 Tuesday, November 19, 2019 Approved
Nexus Repository OSS 3.19.1.01 335 Sunday, October 13, 2019 Approved
Nexus Repository OSS 3.18.1.01 369 Saturday, August 24, 2019 Approved
Nexus Repository OSS 3.15.2.01 729 Thursday, March 14, 2019 Approved
Nexus Repository OSS 3.14.0.4 446 Thursday, January 10, 2019 Approved
Nexus Repository OSS 3.12.1.1 754 Thursday, July 19, 2018 Approved
Nexus Repository OSS 3.11.0.1 455 Wednesday, May 9, 2018 Approved
Nexus Repository OSS 3.9.0.20180301 403 Friday, March 23, 2018 Approved
Nexus Repository OSS 3.9.0.01 374 Saturday, March 10, 2018 Approved
Nexus Repository OSS 3.8.0.02 385 Thursday, February 22, 2018 Approved
Nexus Repository OSS 3.7.1.02 470 Friday, December 29, 2017 Approved
Nexus Repository OSS 3.6.0.02 461 Thursday, November 2, 2017 Approved
Nexus Repository OSS 3.5.2.01 489 Saturday, September 23, 2017 Approved
Nexus Repository OSS 3.3.2.02 651 Tuesday, June 27, 2017 Approved
Nexus Repository OSS 3.0.2.02 890 Saturday, September 24, 2016 Approved
Nexus Repository OSS 3.0.1.01 516 Saturday, July 30, 2016 Approved
Nexus Repository OSS 3.0.0.03 473 Friday, April 8, 2016 Approved
Nexus Repository OSS 3.0.0-m7-1 452 Friday, February 26, 2016 Exempted
Nexus Repository OSS 3.0.0-m7 464 Friday, February 26, 2016 Exempted
Nexus Repository OSS 2.12.0.01 456 Friday, February 26, 2016 Approved

https://help.sonatype.com/repomanager3/release-notes/2020-release-notes
https://help.sonatype.com/repomanager3/download/download-archives---repository-manager-3
Packaging
3.27.0.03
- new code to attempt to shutdown nexus, but eventually kill it after 3 attempts seperated by 2 minutes each.
- new parameter /WarningIntervals (see below for description)
- new parameter /WarningSeconds (see below for description)
3.19.1.20191118
- messaging at end of install has been adjusted to accurately reflect new admin password behavior
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 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 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.

This package supports the following parameters:

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

-params '"/WarningIntervals:5"' (default: 3)
Number of times to check if nexus service has shutdown before forcing it down.

-params '"/WarningSeconds:60"' (default: 120)
Number of seconds to wait for shutdown in each interval.

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