Avoid getting HTTP 429 through honoring repositories defined in settings.xml
- Langage dominant
- Java
- Étoiles
- 254
- Forks
- 78
- Merge moyen
- 5 h 26 min
- PR mergées (30 j)
- 2
Description
### New feature, improvement proposal
We recently started getting HTTP 429 from Maven Central when performing builds on a company internal Jenkins:
```
./mvnw -B -e -s path/to/settings.xml ...
Exception in thread "main" java.io.IOException: Server returned HTTP response code: 429 for URL: https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.11/apache-maven-3.9.11-bin.zip
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:2037)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1626)
at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:224)
at org.apache.maven.wrapper.DefaultDownloader.downloadInternal(DefaultDownloader.java:100)
at org.apache.maven.wrapper.DefaultDownloader.download(DefaultDownloader.java:86)
at org.apache.maven.wrapper.Installer.createDist(Installer.java:84)
at org.apache.maven.wrapper.WrapperExecutor.execute(WrapperExecutor.java:160)
at org.apache.maven.wrapper.MavenWrapperMain.main(MavenWrapperMain.java:73)
```
I know there is a possibility to change `distributionUrl` in `.mvn/wrapper/maven-wrapper.properties`
Unfortunately, it is not feasible in this case, because it is a public git repository that can be built by anybody, so we cannot set a company internal `distributionUrl`.
I wonder whether it would be possible to implement some basic parsing of maven mirrors and an repositories present in settings.xml and respect those when downloading the distro?
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Piste de recherche
Commencez par suivre le flux de téléchargement du wrapper à travers DefaultDownloader, Installer et WrapperExecutor, puis examinez la manière dont .mvn/wrapper/maven-wrapper.properties et le settings.xml fourni sont traités. Vérifiez les tests existants concernant les téléchargements de distributions et l’analyse de settings.xml. La tâche est terminée lorsque les définitions de dépôts ou de miroirs de settings.xml sont respectées lors des téléchargements de distributions, sans casser les builds qui ne fournissent pas ces paramètres.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java
- Domaine
- build-system
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 52/100