Affected version
3.3.3
Bug description
Running the Maven Wrapper plugin through the Maven Wrapper's only-script distribution type causes MVNW_REPOURL to be discarded, leaving the distributionUrl written to maven-wrapper.properties at its default value. Consequently, only-script for Linux is unable to update itself in any environment that needs MVNW_REPOURL.
That is, the hypothetical execution
$ MVNW_REPOURL=asdfasdf ./mvnw org.apache.maven.plugins:maven-wrapper-plugin:3.3.3:wrapper -Dtype=only-script -Dmaven=3.9.11 -X
where asdfasdf is a functional mirror should have produced an output similar to
...
[DEBUG] Using repo URL from MVNW_REPOURL environment variable.
[DEBUG] Determined repo URL to use as asdfasdf
[INFO] Configuring .mvn/wrapper/maven-wrapper.properties to use Maven 3.9.11 and download from asdfasdf
but will end up producing
...
[DEBUG] Determined repo URL to use as https://repo.maven.apache.org/maven2
[INFO] Configuring .mvn/wrapper/maven-wrapper.properties to use Maven 3.9.11 and download from https://repo.maven.apache.org/maven2
and the result is consistent with the log messages.
This happens because only-mvnw explicitly unsets MVNW_REPOURL:
https://github.com/apache/maven-wrapper/blob/maven-wrapper-3.3.3/maven-wrapper-distribution/src/resources/only-mvnw#L149
so by the time WrapperMojo tries to read the variable it sees null:
https://github.com/apache/maven-wrapper/blob/maven-wrapper-3.3.3/maven-wrapper-distribution/src/resources/only-mvnw#L149
As far as I can see, this bug does not exist in only-mvnw.cmd.
The issue is exacerbated by the user property distributionUrl value representing the "final" URl. That is, it is not simply a domain substitution and therefore cannot take the place of MVNW_REPOURL.
Affected version
3.3.3
Bug description
Running the Maven Wrapper plugin through the Maven Wrapper's
only-scriptdistribution type causesMVNW_REPOURLto be discarded, leaving thedistributionUrlwritten tomaven-wrapper.propertiesat its default value. Consequently,only-scriptfor Linux is unable to update itself in any environment that needsMVNW_REPOURL.That is, the hypothetical execution
where
asdfasdfis a functional mirror should have produced an output similar tobut will end up producing
and the result is consistent with the log messages.
This happens because
only-mvnwexplicitly unsetsMVNW_REPOURL:https://github.com/apache/maven-wrapper/blob/maven-wrapper-3.3.3/maven-wrapper-distribution/src/resources/only-mvnw#L149
so by the time
WrapperMojotries to read the variable it seesnull:https://github.com/apache/maven-wrapper/blob/maven-wrapper-3.3.3/maven-wrapper-distribution/src/resources/only-mvnw#L149
As far as I can see, this bug does not exist in
only-mvnw.cmd.The issue is exacerbated by the user property
distributionUrlvalue representing the "final" URl. That is, it is not simply a domain substitution and therefore cannot take the place ofMVNW_REPOURL.