Uploaded image for project: 'Maven Wrapper'
  1. Maven Wrapper
  2. MWRAPPER-146

Bad substitution on Windows if MVNW_REPOURL is set on script-only

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 3.3.0, 3.3.1, 3.3.2
    • None
    • Maven Wrapper Scripts
    • None
    • Windows 10, Windows Server 2022 with powershell 5.1

    Description

      Since version 3.3.0, we cannot download Maven distribution if we set MVNW_REPOURL on Windows platforms (Windows 10, Windows Server 2022) with script-only.

      wrapperVersion=3.3.2
      distributionType=only-script
      distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip
      PS C:\workspace\poc\maven-build> .\mvnw.cmd -v
      icm : Exception lors de l'appel de « DownloadFile » avec « 2 » argument(s) : « Le serveur distant a retourné une erreur : (404) Introuvable. »
      Au caractère Ligne:1 : 72
      + ... 'mvnw.cmd'; icm -ScriptBlock ([Scriptblock]::Create((Get-Content -Raw ...
      +                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          + CategoryInfo          : NotSpecified: (:) [Invoke-Command], MethodInvocationException
          + FullyQualifiedErrorId : WebException,Microsoft.PowerShell.Commands.InvokeCommandCommand
      Commande ECHO activée.
      Cannot start maven from wrapper

      If MVNW_VERBOSE is  also set to "true" we can have some hints

      PS C:\workspace\poc\maven-build> .\mvnw.cmd -v
      COMMENTAIRES : Couldn't find MAVEN_HOME, downloading and installing it ...
      COMMENTAIRES : Downloading from: https://nexus.local/repository/maven-repo/maven/mvnd/https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip
      COMMENTAIRES : Downloading to: C:\Users\jahk04\AppData\Local\Temp\tmp950D.tmp.dir/apache-maven-3.9.9-bin.zip
      icm : Exception lors de l'appel de «DownloadFile» avec «2» argument(s): «Le serveur distant a retourné une erreur:
      (404) Introuvable.»
      Au caractère Ligne:1 : 72
      + ... 'mvnw.cmd'; icm -ScriptBlock ([Scriptblock]::Create((Get-Content -Raw ...
      +                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          + CategoryInfo          : NotSpecified: (:) [Invoke-Command], MethodInvocationException
          + FullyQualifiedErrorId : WebException,Microsoft.PowerShell.Commands.InvokeCommandCommand
      Commande ECHO activée.
      Cannot start maven from wrapper

      $env:MVNW_REPOURL is concatened with mvnd context and the actual distributionUrl defined inside .mvn/wrapper/maven-wrapper.properties

      Looking at script mvnw.cmd, it seems that the following block is at fault

      # apply MVNW_REPOURL and calculate MAVEN_HOME
      # maven home pattern: ~/.m2/wrapper/dists/{apache-maven-<version>,maven-mvnd-<version>-<platform>}/<hash>
      if ($env:MVNW_REPOURL) {
        $MVNW_REPO_PATTERN = if ($USE_MVND) { "/org/apache/maven/" } else { "/maven/mvnd/" }
        $distributionUrl = "$env:MVNW_REPOURL$MVNW_REPO_PATTERN$($distributionUrl -replace '^.*'+$MVNW_REPO_PATTERN,'')"
      } 

      Two "bugs" in my opinion

      • USE_MVND evaluation is incorrect: should have been 
        if ($USE_MVND -eq $False)

          the variable USE_MVND is previously set to either  $true or $false

       

      • The string substitution doesn't work correctly, the following works for my environment
        $($distributionUrl -replace "^.*$MVNW_REPO_PATTERN",'')

      After fixing these two lines

      PS C:\workspace\poc\maven-build> .\mvnw.cmd -v
      COMMENTAIRES : Couldn't find MAVEN_HOME, downloading and installing it ...
      COMMENTAIRES : Downloading from: https://nexus.local/repository/maven-repo/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip
      COMMENTAIRES : Downloading to: C:\Users\jahk04\AppData\Local\Temp\tmp1DCA.tmp.dir/apache-maven-3.9.9-bin.zip
      

       

       

      Attachments

        Activity

          People

            Unassigned Unassigned
            jahk04 Bruno Villegas
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: