apache / apache/maven-wrapper

Avoid getting HTTP 429 through honoring repositories defined in settings.xml

Aperta
#421 6 commenti 1 reazione 0 assegnatari Vedi su GitHub
enhancement
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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.