Description
Discussed in #32172
Originally posted by schuch October 28, 2024
When renovate suggests updates to the Maven wrapper, it does not retain hostnames of an internal Maven registry in the distributionUrl
parameter.
The distributionUrl
parameter is important if the wrapper is used in only-script
mode, which is the new default.
The following wrapper modes1 are available:
only-script
(new default since mvnw 3.32)script
bin
(the old default i think)source
Example of a wrapper.properties
file with only-script
mode:
wrapperVersion=3.3.2
distributionType=only-script
distributionUrl=https://fqdn.of.internal.registry/internal-repo1-mirror-name/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip
Currently renovate scans the wrapper.properties
file for the Pattern /^(.*?)\/org\/apache\/maven\/wrapper\/
3 to extract the existing registry's fqdn. But this pattern does only match, if the wrapper is used in the bin
mode. (wrapperUrl
property). Renovate then forcefully sets MVNW_REPOURL
to repo.maven.apache.org
which cannot be overridden by the renovate user.
I would be nice, if renovate would support retaining the registry hostname for the only-script
mode, like it does for the bin
mode4.
Reproduction
- Repo: https://github.com/schuch/renovate-maven-wrapper-only-script
- Example MR: https://github.com/schuch/renovate-maven-wrapper-only-script/pull/6/files#diff-1df564955cac198c2a317aceb01d86891160f1b185d9875b384b7d54819af358R19
You can see that Renovate is changing the distributionUrl
. In the example, the public registry URL https://repo1.maven.org/maven2
(vs. https://repo.maven.apache.org/maven2
) was used for the test, as the update command mvn wrapper:wrapper
would otherwise not run successfully with a real private URL. But I think you get the idea, because the distributionUrl
should have remained stable in this case as well.
Footnotes
-
Documentation about the wrapper modes: https://maven.apache.org/wrapper/#usage-with-or-without-binary-jar ↩
-
Maven Wrapper 3.3 Release Notes: https://github.com/apache/maven-wrapper/releases/tag/maven-wrapper-3.3.0 ↩
-
Relevant line of code: https://github.com/renovatebot/renovate/blob/87152d36e1f011fad38eb6fd73ed7f664f3ca0bd/lib/modules/manager/maven-wrapper/artifacts.ts#L188 ↩
-
Related Issue that lead to introduction of the feature to keep the internal registry hostname in
bin
mode: https://github.com/renovatebot/renovate/issues/20064