Question

Les paramètres par défaut Maven pour les requêtes HTTP, tels que ceux Maven utilise pour récupérer des objets à partir des dépôts, y compris les en-têtes suivants:

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

Cela semble être le comportement documenté . Le wagon par défaut Maven pour HTTP (à savoir le client « léger ») ne semble pas permettre la désactivation de ces en-têtes.

Pourquoi est-Maven configuré de cette manière par défaut? Pour des objets qui ont en fait des versions, ils ne doivent pas changer, non?

travail I dans un environnement où de nombreux développeurs partagent un proxy HTTP commun et ce comportement signifie que les développeurs ne bénéficient de la mise en cache. Et, nous avons dependencyManagement sur toutes nos dépendances et ne pas utiliser d'autres versions ou Snapshots qui pourraient changer, il semble donc que la mise en cache doit être en sécurité.

Que puis-je mettre dans mon settings.xml ou pom.xml pour désactiver ces en-têtes et permettre à notre proxy cache des réponses et de les renvoyer?

Était-ce utile?

La solution

  

Cela semble être le comportement documenté. Le wagon par défaut Maven pour HTTP (à savoir le client « léger ») ne semble pas permettre la désactivation de ces en-têtes.

En fait, vous peut configure léger HTTP client de Wagon à l'aide des setters disponibles, par exemple (Maven 2.0 +):

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

Ou même de remplacer ou de fournir des en-têtes HTTP supplémentaires (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>

Ceci est bien couvert par Brett Porter Configuration Maven HTTP connexions .

  

Pourquoi est-Maven configuré de cette manière par défaut?

guess sauvage: il est un défaut en toute sécurité pour éviter les problèmes avec les proxies mal configurés (pas vraiment sûr cela est vrai)

.
  

Que puis-je mettre dans mon settings.xml ou pom.xml pour désactiver ces en-têtes et permettre à notre proxy cache des réponses et de les renvoyer?

Les paramètres ci-dessus vont dans le settings.xml (bien sûr, adapter le id si nécessaire, central est pour le dépôt par défaut utilisé par Maven).

Si cela ne fonctionne pas (il se doit), l'alternative serait de revenir à HTTPClient Wagon et de le configurer comme indiqué dans le Configuration avancée de la HttpClient HTTP Wagon .

Références

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top