Avoid getting HTTP 429 through honoring repositories defined in settings.xml
- Lingua principale
- Java
- Stelle
- 254
- Fork
- 78
- Merge medio
- 5h 26m
- PR unite (30g)
- 2
Descrizione
### 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?
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Direzione di ricerca
Inizia tracciando il flusso di download del wrapper attraverso DefaultDownloader, Installer e WrapperExecutor, quindi esamina come vengono gestiti .mvn/wrapper/maven-wrapper.properties e il settings.xml fornito. Controlla i test esistenti relativi ai download delle distribuzioni e al parsing di settings.xml. Il lavoro è completo quando le definizioni di repository o mirror presenti in settings.xml vengono rispettate durante i download delle distribuzioni senza interrompere le build che non forniscono tali impostazioni.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- java
- Ambito
- build-system
- Tipo di issue
- Funzionalità
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Tranquilla
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 52/100