⚙️ اخیرا با تشدید تداخلات اینترنتی و تحریم ها و از کار افتادن فیلترشکن ها تعداد زیادی از رفقا سر دانلود دیپندنسی ها به مشکلات [403,404] و ارور گریدل میخوردن، برای همین توسعه یه mirror maven بصورت اوپن سورس که امنیت استفاده کننده رو تضمین بکنه ایده خوبی به نظر میرسید. 🤔
🚀 اگه بخوام خیلی ساده و خودمونی بگم، Maven Mirror یه واسطهست که درخواستهای دانلود دیپندنسیهاتون رو میگیره و خودش که تحریم نیست، میره از گوگل یا مخازن دیگه میاره و تحویلتون میده. اینجوری دیگه تحریمها نمیتونن سد راهتون بشن! 👌
چند روز گذشته روی این مسئله کار کردم و یه mirror maven به 2 صورت توسعه دادم.✌️
🟢 روش اول بصورت راه اندازی یه بک اندی هست که ریکوئست هارو منتقل میکنه به مخازن مربوطه و دیپندنسی رو دانلود و برمیگردونه، این بک اند با php توسعه داده شده تا بشه توی فضای خیلی کم هزینه ای اجرا کرد (به وسیله همین هاست های اشتراکی که هزینه ماهانه خیلی ناچیزی دارن میتونین روشون اجرا بکنین و برای خودتون یه mirror بالا بیارین)
🟢 روش دوم استفاده از ورکر های کلاد فلر بود، این روش برای شما هیچ هزینه ای نداره، صرفا نیازه که توی کلادفلر لاگین کنید و یه ورکر با کدایی رو براتون قرار میدم بسازید و بی دردسر استفاده کنید.
✅ تمامی این متد ها برای این بود که اگه شخصی میخواد maven mirror امن خودش رو داشته باشه یکی برای خودش بالا بیاره، یه نمونه از این maven mirror به آدرس en-mirror.ir به وسیله ورکر های کلادفلر اجرا شده و آماده استفاده هست، تنها نیازه که توی فایل settings.gradle یا هرجایی که ریپازیتوری مشخص میکنید برای گردل این maven رو استفاده کنید:
pluginManagement { repositories { maven("https://en-mirror.ir") } } dependencyResolutionManagement { ... repositories { maven("https://en-mirror.ir") } }
- بعد از اضافه کردن این Mirror، میتونید تمام مخازن قبلی مثل گوگل، Maven Central، جیتپک و ... رو حذف کنید. این Mirror خودش تمام دیپندنسیهای موردنیازتون رو پیدا میکنه و براتون میاره! 😁
🛠 کد ها و نحوه اجرای هر دو متد توی گیتهاب بصورت کامل قرار داده شده و میتونید مطالعه کنید:
امیدوارم این mirror کمکی بکنه و درصورت وجود مشکل دانلود ازش استفاده کنید. ✌️
ممنون میشم با لایک و کامنت این پست به دیده شدن اش کمک کنید، مثل همیشه خوشحال میشم اگر پیشنهاد و نظری دارید بهم بگید.🙃
🤔 پ.ن: قبلاً هم میرورهایی مثل Myket و ... وجود داشتن، اما هدف اصلی این میرور اوپن سورس بودنشه تا امنیت کاربر رو تضمین بکنه (واقعاً کی میدونه پشت میرورهای کلوز سورس چه خبره و درخواست شما به کجا میره؟ 😁). علاوه بر این، میخواستیم یاد بگیریم که چطور میشه چنین سیستمی رو خودمون راهاندازی کنیم! 👌