HTTP 请求的默认 Maven 设置,例如 Maven 用于从存储库中获取工件的设置,包括以下标头:
Cache-control: no-cache
Cache-store: no-store
Pragma: no-cache
Expires: 0
Accept-Encoding: gzip
这似乎是记录在案的行为。HTTP 的默认 Maven wagon(即“轻量级”客户端)似乎不允许禁用这些标头。
为什么Maven默认是这样配置的?对于实际有版本的工件,它们永远不应该改变,对吧?
我在许多开发人员共享一个公共 HTTP 代理的环境中工作,这种行为意味着开发人员永远不会从缓存中受益。而且,我们拥有dependencyManagement
所有依赖项,并且不使用 SNAPSHOT 或其他可能更改的版本,因此缓存似乎应该是安全的。
我可以在我的 settings.xml 或 pom.xml 中添加什么来禁用这些标头并允许我们的代理缓存响应并返回它们?