Maven Repository و نحوه انتشار کتابخانه ها به صورت محلی در رایانه.

Maven Repository و نحوه انتشار کتابخانه ها به صورت محلی در رایانه.

آیا از انتظار هربار منتظر گرفتن یک عکس خسته شده اید؟

اگر در پروژه خود کتابخانه ای را ادغام می کنید که دارای اشکال است یا باید تعدادی تغییر در آن ایجاد کنید ، اما نمی توانید منتظر بمانید تا یک Snapshot منتشر شود تا بتوانید آن را آزمایش کنید ، می توانید آن را به صورت محلی منتشر کرده و با انجام این مراحل تغییرات را نشان دهید.

فرض کنید شما به کد آن دسترسی دارید کتابخانه ، سپس فقط آن را در رایانه خود بارگیری کنید ، توسط یک کنسول ترمینال به مسیر اصلی بروید و دستورات زیر را برای انتشار محلی فایلهای Maven اجرا کنید:

 ./gradlew clean 
. /gradlew build 
 ./gradlew publishedToMavenLocal 

پس از اتمام ، همه فایل های *.pom و *.aar در پوشه /.m2 محلی شما قرار خواهند گرفت.

PublishToMavenLocal یک وظیفه داخلی افزونه maven-published از Gradle است و اصلاً چیزی را در Artifactory (JCenter/Maven) از راه دور منتشر نمی کند.

در پروژه ای که در آن کتابخانه را ادغام می کنید: main build.gradle مطمئن شوید mavenLocal () در اولین موقعیت لیست قرار داشته باشد. مطمئن شوید که از نسخه صحیح کتابخانه خود استفاده می کنید. اگر نسخه کتابخانه خود را ارتقاء می دهید ، به عنوان مثال ، به v1.1 در حین انجام کار ، مطمئن شوید که از همان نسخه در بلوک وابستگی های پروژه خود استفاده می کنید. فراموش کردن به روزرسانی نسخه در بلوک وابستگی ها نیز یک اشتباه رایج است. از افزونه مناسب وابستگی استفاده کنید. بسته به نحوه انتشار مصنوع کتابخانه شما ، ممکن است نیاز به افزودن فرمتaar در بلوک وابستگی ها داشته باشید. اگر مصنوع lib خود را به صورت محلی با پسوند .aar منتشر کرده اید و پسوندaar را روی وابستگی قرار نداده اید ، ممکن است gradle سعی کند lib را از اینترنت به جای mavenLocal (پوشه .m2) از اینترنت بارگیری کند.

 نسخه اصلی {
    مخازن {
        mavenLocal ()
        ... 
 همه پروژه ها {
    مخازن {
        mavenLocal ()
        ... 

توجه داشته باشید که mavenlLocal () همیشه ابتدا کتابخانه های موجود در پوشه /.m2 را برمی دارد.

→ همین!

اکنون ، برای آزمایش اینکه آیا کار می کند ، فقط یک خط در کتابخانه را تغییر دهید و در مسیر پروژه کتابخانه خود ، دستور gradle زیر را

 ./gradlew build publishedToMavenLocal 

… و پس از یک همگام سازی درجه ای ، آن تغییرات را در پروژه خود مشاهده خواهید کرد.

هنگامی که به درستی آزمایش شد ، می توانید درخواست Pull را ارسال کنید تا تغییرات خود را به عنوان بخشی از تصویر بعدی وارد کنید.