Maven skal nå proxy-pluginet, før det kan køre det
Forstå bootstrap-problemet, når et Maven-plugin lover at finde en proxy, men dets egne artefakter ikke kan opløses.
Et automatisk proxy-plugin lyder ideelt til en bærbar computer, der flytter sig mellem netværk. Der er én akavet første anmodning: Maven kan have brug for proxyen til at hente selve pluginet.
Et plugin-mål kører først, når Maven kan opløse og indlæse dets implementering og nødvendige artefakter. Proxy-opdagelse inde i den implementering kan ikke hjælpe en download, der fejler, før implementeringen starter. Brug af fuldt kvalificerede plugin-koordinater kan undgå et præfiksopslag; det får ikke plugin-artefakten til at dukke op i et tomt lokalt lager.
Det gamle Autoproxy Maven-plugin illustrerer forskellen. Dets README beskriver proxy-opdagelse via proxy-vole, men beskriver også lokal installation af pluginet, før dets mål kaldes. Betragt det som en forudsætning for netop det design, ikke som bevis for, at Maven generelt læser browserens PAC-indstillinger.
Giv den første opløsning en eksplicit rute
Til et netværk, hvor lageradgang kræver en HTTP-proxy, skal du konfigurere den relevante aktive proxy i de Maven-indstillinger, som det pågældende kald bruger. Til en tilladt bootstrap fra et offentligt lager vælges en HTTP-kandidat fra HTTP-proxy-listen. Et godkendt internt lager, der kan nås uden den eksterne rute, kan også løse det indledende adgangsproblem. Begge tilgange skal dække pluginet og dets afhængigheder, ikke kun applikationens afhængigheder.
Et tidligere fyldt lokalt lager kan skjule bootstrap-kravet. Succes på en udviklers bærbare computer beviser ikke, at en frisk CI-konto kan starte det samme build. Se på den fejlende artefakt og fase, før du ændrer pluginets detektionslogik.
Når pluginet er indlæst, bliver en senere afhængighedsfejl et separat spørgsmål: om dets fundne rute er korrekt, og om den aktive Maven-transport bruger de resulterende indstillinger. Hold de to fejlpunkter adskilt, når du beslutter, om automatisk registrering er værd at beholde.