import org.jboss.shrinkwrap.resolver.api.maven.Maven;
import org.jboss.shrinkwrap.resolver.api.maven.MavenResolverSystem;

MavenResolverSystem resolver = Maven.configureResolver()
    .fromFile("/path/to/test-settings.xml");

Verwenden Sie diesen resolver für nachfolgende Resolve-Vorgänge. Wenn Sie ihn erzeugen und dann einen anderen Standard-Resolver aufrufen, bleibt die Einstellung am ungenutzten Objekt. Ein Arquillian-Test kann diese Repository-Sitzung erstellen, nachdem Maven den Testprozess bereits gestartet hat, sodass ein früherer Download über die Kommandozeile seine Eingaben nicht festlegt.

Die ausgewählte Datei verwendet die Maven-Settings-Syntax. Innerhalb von settings ist eine minimale Route:

<proxies>
  <proxy>
    <id>test-network</id>
    <active>true</active>
    <protocol>http</protocol>
    <host>proxy.example.net</host>
    <port>8080</port>
    <nonProxyHosts>localhost|*.internal.example.net</nonProxyHosts>
  </proxy>
</proxies>

Ersetzen Sie Pfad, Endpunkt und die beabsichtigten Ausnahmen. Der Host hat kein URL-Präfix. Wenn dieser Test-Resolver über einen nicht authentifizierten öffentlichen Vermittler ein öffentliches Repository erreichen darf, liefert die HTTP-Proxy-Liste Kandidatenwerte für Host/Port; prüfen Sie den Zugriff auf das tatsächliche Repository. Stellen Sie die Proxy-Authentifizierung über unterstützte Einstellungen bereit; Repository-/Server-Konten authentifizieren einen anderen Dienst.

Die gepflegte Implementierung lädt aktive Proxy-Einträge aus dem Settings-Modell in den Selektor der Repository-Sitzung. Standardmäßig werden auch Benutzer-/globale Einstellungsorte berücksichtigt; eine explizite Datei hilft, wenn eine IDE, ein Build-Agent oder ein Test-Runner ein anderes Home-Verzeichnis hat.

Prüfen Sie den Einstellungspfad, die Repository-URL und ob das Artefakt tatsächlich heruntergeladen werden musste. Ein vorgewärmtes Repository kann eine fehlende Route verbergen. Der Resolver beschafft Deployment-Artefakte; ein vom Test genutzter HTTP-Client stellt eine andere Anfrage und benötigt seine eigene Konfiguration. Für Maven-Surefire-Tests, deren HTTP-Client JVM-Proxy-Eigenschaften beachtet, konfigurieren Sie die Proxy-Eingaben der Test-JVM.

Ähnliche Artikel