سؤال

تشمل إعدادات Maven الافتراضية لطلبات HTTP ، مثل تلك التي يستخدمها Maven لجلب القطع الأثرية من المستودعات ، الرؤوس التالية:

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

يبدو أن هذا هو سلوك موثق. لا يبدو أن عربة Maven الافتراضية لـ HTTP (أي عميل "الوزن الخفيف") تسمح بتعطيل هذه الرؤوس.

لماذا يتم تكوين Maven بهذه الطريقة افتراضيًا؟ بالنسبة إلى القطع الأثرية التي لديها إصدارات بالفعل ، لا ينبغي أن تتغير أبدًا ، أليس كذلك؟

أعمل في بيئة حيث يشارك العديد من المطورين وكيل HTTP المشترك وهذا السلوك يعني أن المطورين لا يستفيدون أبدًا من التخزين المؤقت. ونحن لدينا dependencyManagement في جميع تبعياتنا ولا تستخدم لقطات أو إصدارات أخرى قد تتغير ، لذلك يبدو أن التخزين المؤقت يجب أن يكون آمنًا.

ما الذي يمكنني وضعه في إعداداتي

هل كانت مفيدة؟

المحلول

يبدو أن هذا هو السلوك الموثق. لا يبدو أن عربة Maven الافتراضية لـ HTTP (أي عميل "الوزن الخفيف") تسمح بتعطيل هذه الرؤوس.

في الواقع ، أنت يستطيع تكوين عربة HTTP خفيفة الوزن العميل باستخدام المستقلين المتاحين ، على سبيل المثال (Maven 2.0+):

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

أو حتى تجاوز أو توفير رؤوس HTTP إضافية (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>

هذا مغطى بشكل جيد من قبل بريت بورتر في تكوين اتصالات Maven HTTP.

لماذا يتم تكوين Maven بهذه الطريقة افتراضيًا؟

Wild Guess: إنه افتراضي آمن لتجنب مشاكل الوكلاء الذين تم تكوينهم بشكل سيئ (ليس متأكدًا حقًا من أن هذا صحيح).

ما الذي يمكنني وضعه في إعداداتي

الإعدادات أعلاه تذهب في settings.xml (بالطبع ، تكييف id إذا لزم الأمر، central هو للمستودع الافتراضي الذي يستخدمه Maven).

إذا لم ينجح ذلك (ينبغي) ، فإن البديل هو العودة إليه عربة httpclient ولتكوينه كما هو موثق في التكوين المتقدم من عربة HTTPClient HTTP.

مراجع

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top