You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Jeff Pierson (Jira)" <ji...@apache.org> on 2022/08/23 13:51:00 UTC

[jira] [Commented] (MWRAPPER-68) MVNW_REPOURL improperly formed distributionUrl

    [ https://issues.apache.org/jira/browse/MWRAPPER-68?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17583643#comment-17583643 ] 

Jeff Pierson commented on MWRAPPER-68:
--------------------------------------

I have also run into this issue after updating a project where we use MVNW_REPOURL pretty consistently between different developers and after attempting to update Maven Wrapper. This update was a biproduct of attempting to update to a new version of Maven for the project via the following command (powershell).

 
{code:java}
./mvnw wrapper:wrapper "-Dmaven=3.8.6" {code}
 

After quite a bit of headache I was able to find that I can essentially down grade the version of maven-wrapper by editing the mvnw and mvnw.cmd script files directly. Changing the version in the URL found in .mvn\wrapper\maven-wrapper.properties had no consequence on the version used because the version seems to be hard coded in those script files.

So with the workaround that I have in place which effectively sets our maven-wrapper version to 3.1.0 instead of the problematic 3.1.1 we should be ok for this project but with several other projects in our organization that use Maven Wrapper this becomes a bit tedious. If 3.2.0 is coming along soon enough with a fix for this then it shouldn't be a big issue but I'm wondering if there may be a better solution to get these bug fixes out instead of waiting for the related feature work for https://issues.apache.org/jira/browse/MWRAPPER-16 and https://issues.apache.org/jira/browse/MWRAPPER-61. If not and I guess either way, would it be reasonable to persue a better way of controlling the maven-wrapper version other than editing scripts directly? I'm thinking such as a modification to the Maven Wrapper Plugin to take a parameter that specifies the version similar how it currently works with the above maven prop/arg or just have the scripts use the version number from the maven-wrapper.properties file.

> MVNW_REPOURL improperly formed distributionUrl
> ----------------------------------------------
>
>                 Key: MWRAPPER-68
>                 URL: https://issues.apache.org/jira/browse/MWRAPPER-68
>             Project: Maven Wrapper
>          Issue Type: Bug
>          Components: Maven Wrapper Jar
>    Affects Versions: 3.1.1
>            Reporter: HumanFund
>            Assignee: Slawomir Jaranowski
>            Priority: Major
>             Fix For: 3.2.0
>
>
> In Maven Wrapper v3.1.1, Installer::createDist(), file maven-wrapper/src/main/java/org/apache/maven/wrapper/Installer.java, was updated on line 74 to be:
> distributionUrl = new URI( mvnwRepoUrl ).resolve( "/" ).resolve( mvnPath );
> The above update is causing the distributionUrl to be improperly formed based on the MVNW_REPOURL environment variable and the mvnPath which is extracted from the distributionUrl in maven-wrapper.properties, specifically the substring starting with "org/apache/maven".
> The update was introduced in the following commit:
> [https://github.com/apache/maven-wrapper/commit/22a3268def96e5e648aa97a49d9e146e529b7c87#diff-193f3775e6efb0b6ed01219b21272f9eb3861965ce3af3586a0ce8eb153359c0]
> An example of the results are shown below.  Note the "Downloading" URI does not include the entire repo url, only the scheme, host, and port, then the maven path is appended.
> The repo url is getting truncated by the call to resolve( "/" ) on line 74.  I do not currently see a purpose for having this call in place.  I made the following update to line 74 and it works fine:
> distributionUrl = new URI( mvnwRepoUrl ).resolve( mvnPath );
> Note that in Maven Wrapper v3.1.0, the distributionUrl was formed simply by appending the maven path to the MVNW_REPOURL:
> distributionUrl = new URI( mvnwRepoUrl + "/" + mvnPath );
> Example output demonstrating issue:
> [exec] [INFO] Apache Maven Wrapper 3.1.1
> [exec] [INFO] Detected MVNW_REPOURL environment variable [http://localhost:8081/repository/repo-maven-apache-org-maven2/]
> [exec] [INFO] Installing Maven distribution /home/myexamplehome/maven/wrapper/dists/apache-maven-3.6.3-bin/cf3cf814
> [exec] [INFO] Downloading [http://localhost:8081/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip]
>  
>  



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