في سياق وحدات Go، التبعيات هي حزم مطلوبة من قبل وحدة معينة. بينما يتم إدراج التبعيات المباشرة بشكل صريح في بيان الطلب الخاص بملف go.mod، تتم إضافة التبعيات غير المباشرة تلقائيًا عندما تعتمد التبعيات المباشرة عليها.
يمكن أن يؤدي هذا إلى موقف حيث يحتوي ملف go.mod الخاص بالوحدة النمطية على العديد من التبعيات غير المباشرة، على الرغم من عدم استخدامها مباشرة من قبل الوحدة نفسها. يمكن أن يكون هذا الأمر مربكًا ويصعب إدارته، خاصةً عند تضمين إصدارات متعددة من التبعيات.
لسوء الحظ، ليس من الممكن تجنب التبعيات غير المباشرة تمامًا في ملفات go.mod. عند استخدام وحدات Go، سيتم تلقائيًا إضافة جميع التبعيات التي تتطلبها التبعية المباشرة كتبعيات غير مباشرة، ما لم يتم تحديد خلاف ذلك.
خذ المثال الوارد في السؤال:
module prodenv go 1.13 require ( github.com/gocolly/colly v1.2.0 ... )
في هذه الحالة، لا يحتوي github.com/gocolly/colly v1.2.0 على ملف go.mod، لذلك يتم إدراج جميع تبعياته على أنها غير مباشرة في ملف go.mod الخاص بوحدة prodenv.
لتجنب التبعيات غير المباشرة، يوصى باستخدام التبعيات التي تحتوي على ملفات go.mod. سيضمن هذا إدراج التبعيات التي تستخدمها الوحدة مباشرة فقط في ملف go.mod.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3