Frage

Die Standard-Maven Einstellungen für HTTP-Anforderungen, wie die, die Maven verwendet Artefakte aus Repositories zu holen, sind die folgenden Header:

Cache-control: no-cache
Cache-store: no-store
Pragma: no-cache
Expires: 0
Accept-Encoding: gzip

Dies scheint der dokumentierte Verhalten zu sein. Die Standard-Maven Wagen für HTTP (das heißt, das „leichte“ Client) scheint nicht diese Header zu ermöglichen, zu deaktivieren.

Warum ist Maven auf diese Weise standardmäßig so konfiguriert? Für Artefakte, die tatsächlich Versionen haben, sie sollten nie ändern, nicht wahr?

ich Arbeit in einer Umgebung, wo viele Entwickler ein gemeinsames HTTP-Proxy und dieses Verhaltens Mittel teilen, dass die Entwickler nie von Caching profitieren. Und wir haben dependencyManagement auf alle unsere Abhängigkeiten und nicht von Schnappschüssen oder andere Möglichkeiten nutzen, die sich ändern können, so ist es, dass das Caching scheint sollten sicher sein.

Was kann ich setzen in meiner settings.xml oder pom.xml, um diese Header zu deaktivieren und unserer Proxy Cache-Antworten zulassen und sie zurückkehren?

War es hilfreich?

Lösung

  

Dies scheint das dokumentierte Verhalten. Die Standard-Maven Wagen für HTTP (das heißt, das „leichte“ Client) scheint nicht diese Header zu ermöglichen, zu deaktivieren.

Eigentlich Sie können configure die Leichte HTTP Wagon Client die verfügbaren Setter verwenden, zum Beispiel (Maven 2.0 +):

<servers>
  <server>
    <id>central</id>
    <configuration>
      <useCache>true</useCache>
    </configuration>
  </server>
</servers>

oder sogar außer Kraft gesetzt oder zusätzliche HTTP-Header (Maven 2.1 +):

<server>
  <id>central</id>
  <configuration>
    <httpHeaders>
      <property>
        <name>User-Agent</name>
        <value>Internal-Build-System/1.0</value>
      </property>
    </httpHeaders>
  </configuration>
</server>

Das ist schön von Brett Porter in Konfigurieren von Maven HTTP Verbindungen .

  

Warum ist Maven auf diese Weise standardmäßig so konfiguriert?

wilde Vermutung: es ist eine sichere Standard Probleme mit schlecht konfigurierten Proxys zu vermeiden (nicht wirklich sicher, dass dies wahr ist)

.
  

Was kann ich setzen in meiner settings.xml oder pom.xml, um diese Header zu deaktivieren und unserer Proxy Cache-Antworten zulassen und sie zurückkehren?

Die obigen Einstellungen im settings.xml gehen (natürlich die id anpassen, wenn erforderlich, central ist für die Standard-Repository von Maven verwendet wird).

Wenn es nicht funktioniert (es soll), die Alternative wäre, zu wechseln Httpclient Wagon und zu konfigurieren, wie in der Erweiterte Konfiguration des Httpclient HTTP Wagon .

Referenzen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top