اجعل حياتك أسهل من خلال أتمتة المهام المتكررة باستخدام Makefiles.

في تطوير البرمجيات الحديثة ، تعتبر أتمتة البناء الفعالة أمرًا بالغ الأهمية لنجاح المشروع. توفر Makefiles ، وهي أداة شائعة للتشغيل الآلي للبناء ، لمطوري جميع الأكوام طريقة موجزة وقوية لإدارة عمليات البناء المعقدة.

من خلال دمج Makefiles وتشغيله البيني مع Go ، يمكنك أتمتة المهام المتكررة وتبسيط عمليات الإنشاء وتعزيز الإنتاجية.

فهم ملفات Makefiles

يعد فهم كيفية عمل Makefiles أمرًا بالغ الأهمية لتنظيم وأتمتة إنشاءات مشروعك بكفاءة.

تتبع ملفات Makefiles بنية وبناء جملة محددة لتحديد قواعد إنشاء المشروعات وصيانتها. في جوهره ، يتكون ملف Makefile من قواعد تحدد الأهداف والتبعيات والأوامر. تبدأ كل قاعدة بهدف ، متبوعًا بتبعياتها والأوامر اللازمة لبناء الهدف أو تنفيذه.

تمثل الأهداف ملفات الإخراج المطلوبة أو الإجراءات لملف Makefile. يمكن أن تكون الأهداف أسماء ملفات أو تسميات تصف المهمة. على سبيل المثال ، هدف اسمه ينظف قد يزيل الملفات غير الضرورية التي تم إنشاؤها أثناء عملية الإنشاء.

التبعيات هي ملفات أو مهام مطلوبة لبناء هدف. إذا تم تعديل أي تبعيات ، فإن Makefile سيعيد بناء الأهداف المرتبطة لضمان أن الأجزاء الضرورية من وظيفة المشروع. ستحدد التبعيات بعد الهدف ، مفصولة بمسافات.

instagram viewer

الأوامر هي أفعال أو أوامر شل التي تحتاج إلى التنفيذ لبناء أو تنفيذ أهداف محددة. تتم كتابة الأوامر عادةً بلغة برمجة نصية لنظام التشغيل.

يجب أن يبدأ كل أمر بحرف جدولة للتعرف عليه.

البناء: main.go utils.go
go build -o myapp main.go utils.go

ينظف:
rm myapp

في ملف Makefile أعلاه ، هناك هدفان: يبني و ينظف.

ال يبني الهدف يعتمد على main.go و الاستخدامات الملفات ، ويتم تشغيل الأمر المرتبط على مترجم Go لإنشاء ملف تنفيذي باسم تطبيقي.

من ناحية أخرى ، فإن ينظف الهدف يزيل تطبيقي تنفيذ.

لتجميع كود Go الخاص بك ، انتقل إلى دليل العمل وقم بتشغيل ملف يبني يأمر.

يبني

ستتعامل أداة Make مع عملية التجميع ، مما يسمح لك بالتركيز على كتابة التعليمات البرمجية.

إعداد ملفات Makefiles لمشاريع Go الخاصة بك

يمكنك استخدام Makefiles لإنشاء برامجك وتجميعها ، وإجراء اختبارات التعليمات البرمجية وفحوصات الجودة ، وللتكامل والنشر المستمر.

قم بتشغيل هذا الأمر لإنشاء Makefile لمشروعك في الدليل الجذر. ال Makefile سيكون بمثابة نقطة دخول لتحديد مهام البناء الخاصة بك.

المس Makefile

يجب ألا يحتوي ملفك على أي امتدادات.

بعد إنشاء Makefile ، يمكنك كتابة الأوامر والتبعيات والأهداف إلى الملف لعمليات مشروعك.

في ما يلي مثال على Makefile الذي يعمل كأداة أتمتة بناء لمشروعك:

# ماكيفيل

# المتغيرات
GOCMD = اذهب
جوبيلد =$ (GOCMD) يبني
حصلت =$ (GOCMD) امتحان
جوكلان =$ (GOCMD) ينظف

# الأهداف
يبني:
$ (جوبيلد) -o التطبيق.

امتحان:
$ (قطعت) ./...

ينظف:
$ (غوكلين)
التطبيق rm -f

يمكنك تخصيص ملف Makefile الخاص بك وفقًا للاحتياجات المحددة لمشروعك.

إليك نسخة معدلة من Makefile لتمرير علامات إضافية ومتغيرات البيئة أثناء عملية اختبار المشروع أو بنائه:

# ماكيفيل

# المتغيرات
GOCMD = اذهب
جوبيلد =$ (GOCMD) يبني
حصلت =$ (GOCMD) امتحان
جوكلان =$ (GOCMD) ينظف
BINARY_NAME = تطبيق
TEST_FLAGS = -v

# الأهداف
يبني:
$ (جوبيلد) -o $ (BINARY_NAME) .

امتحان:
$ (قطعت)دولار (TEST_FLAGS) ./...

ينظف:
$ (غوكلين)
rm -f $ (BINARY_NAME)

في ملف Makefile هذا ، هناك نوعان من المتغيرات الجديدة المسماة BINARY_NAME و TEST_FLAGS. ال BINARY_NAME المتغير يحدد اسم الملف القابل للتنفيذ الذي تم إنشاؤه.

ال TEST_FLAGS متغير يسمح لك بتحديد علامات إضافية عند إجراء الاختبارات (في هذه الحالة ، ملف -الخامس العلم يتيح الإخراج المطول أثناء تنفيذ الاختبار).

توفر Makefiles أيضًا طريقة سهلة لتكوين متغيرات البيئة والعلامات لمشروعك.

يمكنك إضافة هذه الأسطر إلى Makefile الخاص بك إذا كنت بحاجة إلى ضبط GOOS و GOARCH متغيرات لبناء مشروعك لنظام تشغيل معين أو بنية معينة.

# ماكيفيل

# المتغيرات
GOCMD = اذهب
جوبيلد =$ (GOCMD) يبني
حصلت =$ (GOCMD) امتحان
جوكلان =$ (GOCMD) ينظف
BINARY_NAME = تطبيق
TEST_FLAGS = -v
GOOS = لينكس
GOARCH = amd64

# الأهداف
يبني:
$ (جوبيلد) -o $ (BINARY_NAME) .

امتحان:
$ (قطعت)دولار (TEST_FLAGS) ./...

ينظف:
$ (غوكلين)
rm -f $ (BINARY_NAME)

في Makefile المحدث ، هناك متغيرين جديدين لـ GOOS و GOARCH متغيرات البيئة التي تسمح لك بتحديد نظام التشغيل المستهدف والبنية الخاصة بالبناء (في هذه الحالة ، ملف GOOS تم تعيين المتغير على لينكس و GOARCH ل amd64 لبناء مشروع Linux على معمارية x86-64).

تذكر أن تكيف هذه المتغيرات بناءً على المتطلبات المحددة لمشروعك.

يمكنك الرجوع إلى اذهب الوثائق للحصول على قائمة القيم المدعومة لـ GOOS و GOARCH إذا كنت بحاجة إلى البناء لمنصة مختلفة.

بناء الأتمتة مع Makefiles

تعتبر ملفات Makefiles مفيدة أيضًا في تجميع التعليمات البرمجية وإنشاء الوثائق وإدارة التبعيات.

مع Makefiles ، يمكنك أتمتة وقت التجميع ، مما يوفر لك الوقت والجهد.

إليك ملف Makefile الذي يجمع برنامج Go:

# تحديد المتغيرات
GOCMD = اذهب
جوبيلد = $ (GOCMD) يبني
BINARY_NAME = برنامجي

# الهدف الافتراضي
الكل: بناء

# بناء الهدف
يبني:
$ (جوبيلد) -o $ (BINARY_NAME)

# الهدف النظيف
ينظف:
rm -f $ (BINARY_NAME)

يعرّف Makefile المتغيرات مثل GOCMD (الأمر Go) و جوبيلد (أمر البناء). ال يبني الهدف يستدعي اذهب للبناء الأمر لتجميع برنامج Go الخاص بنا وإنتاج الملف الثنائي بالاسم المحدد (برنامجي في هذه الحالة). ال ينظف الهدف يزيل الملف الثنائي الذي تم إنشاؤه من المشروع.

يمكنك استخدام Makefiles لأتمتة تثبيت التبعية وتحديث التبعيات الخارجية لمشروعك.

# تحديد المتغيرات
GOCMD = اذهب
جوبيلد = $ (GOCMD) يبني
GOGET = $ (GOCMD) يحصل
BINARY_NAME = برنامجي

# الهدف الافتراضي
الكل: بناء

# بناء الهدف
يبني:
$ (جوبيلد) -o $ (BINARY_NAME)

# تثبيت التبعيات
الأقسام:
$ (جوجيت) -u

# الهدف النظيف
ينظف:
rm -f $ (BINARY_NAME)

يحتوي ملف Makefile على ملف الأقسام الهدف الذي يستخدم إذهب احضر الأمر لتثبيت أو تحديث تبعيات المشروع. يمكنك الجري جعل الأقسام لتثبيت تبعيات مشروعك.

يمكن لملفات Makefiles أتمتة إنشاء الوثائق وتحسين ملفات المستندات كعملية رمز.

إليك كيف يمكنك ذلك إنشاء وثائق تلقائية لمشاريع Go الخاصة بك باستخدام أداة godoc و Makefile:

# تحديد المتغيرات
جودوك = غودوك
DOCS_DIR = مستندات

# الهدف الافتراضي
الكل: مستندات

# توليد الوثائق
المستندات:
$ (GODOC) -html -dir. > $ (DOCS_DIR)/index.html

# الهدف النظيف
ينظف:
rm -rf $ (DOCS_DIR)

في Makefile ، ملف المستندات الهدف يستدعي جودوك الأمر مع -لغة البرمجة لإنشاء وثائق HTML لرمز go الخاص بك وحفظ الوثائق في ملف المستندات الدليل.

ستقوم بتشغيل ملف عمل مستندات الأمر لإنشاء وثائق محدثة لمشروع Go الخاص بك.

ملفات Makefiles مفيدة للعمل مع أنظمة التشغيل المستندة إلى Unix

من خلال الاستفادة من مرونة ملفات Makefiles ، يمكنك تحديد أوامر إنشاء مخصصة وتنفيذ المهام المعقدة في غضون دقائق. Makefile يوفر الوقت ويضمن الاتساق والتكاثر عبر بيئات البناء.

ميزة أخرى لـ Makefiles هي توافقها مع الأنظمة المستندة إلى Unix. Make هي أداة مدعومة على نطاق واسع على أنظمة التشغيل المستندة إلى Unix ، بما في ذلك Linux و macOS ، مما يجعلها أداة محمولة وموثوقة للمطورين.