[ 
https://issues.apache.org/jira/browse/MWRAPPER-146?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sylwester Lachiewicz closed MWRAPPER-146.
-----------------------------------------
    Fix Version/s: 3.3.3
         Assignee: Sylwester Lachiewicz
       Resolution: Fixed

> Bad substitution on Windows if MVNW_REPOURL is set on script-only
> -----------------------------------------------------------------
>
>                 Key: MWRAPPER-146
>                 URL: https://issues.apache.org/jira/browse/MWRAPPER-146
>             Project: Maven Wrapper
>          Issue Type: Bug
>          Components: Maven Wrapper Scripts
>    Affects Versions: 3.3.0, 3.3.1, 3.3.2
>         Environment: Windows 10, Windows Server 2022 with powershell 5.1
>            Reporter: Bruno Villegas
>            Assignee: Sylwester Lachiewicz
>            Priority: Major
>             Fix For: 3.3.3
>
>
> 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.
> {noformat}
> 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{noformat}
> {noformat}
> 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{noformat}
> If MVNW_VERBOSE is  also set to "true" we can have some hints
> {noformat}
> 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{noformat}
> $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
> {code:java}
> # 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,'')"
> } {code}
> Two "bugs" in my opinion
>  - USE_MVND evaluation is incorrect: should have been 
> {code:java}
> if ($USE_MVND -eq $False){code}
>   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
> {code:java}
> $($distributionUrl -replace "^.*$MVNW_REPO_PATTERN",''){code}
> After fixing these two lines
> {noformat}
> 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
> {noformat}
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to