آموزش انتشار کتابخانه اندروید در Bintray/JCenter
سلام دوستان عزیز در این سری از آموزش های برنامه نویسی اندروید / مقاله های برنامه نویسی اندروید وب سایت به آموزش انتشار کتابخانه اندروید در Bintray/JCenter می پردازیم شاید شما کتابخانه ای ساخته باشید و بخواهید به اصطلاح آنلاینش کنید و برای دیگر کاربران جهت استفاده قرار دهید کافیه 6 مرحله خیلی ساده رو انجام بدید ! و کتابخانه شما به راحتی در یکی از منابع Bintray/JCenter منتشر می شود.
خب بیایید شروع کنیم !
مرحله اول ساخت حساب در وب سایت Bintray است.
به راحتی می توانید از اکانت github یا gmail خود استفاده کنید.
لینک ثبت نام
نکته مهم اینکه زمانی که اکانت رو دارید می سازید از نوع private قرارش ندید چون باید هزینه اش رو در ماه بدید.
مرحله دوم اضافه کردن repository در Bintray
روی دکمه ی Add New Repository کلیک کنید.
بعد از اینکه کلیک کردید وارد صفحه زیر می شوید.
اطلاعات مربوط به کتابخانه را وارد کنید و در نهایت بروی Create کلیک کنید.
نکته مهم اینکه Type باید بروی Maven باشه بقیه اطلاعات معلومه چه چیزی باید وارد باشه (خود هر بخش help داره کافیه بخونید ببینید چی می خواهد اگر متوجه نشدید.)
بعد از اینکه بروی دکمه create زدید redirect میشد به صفحه زیر
مرحله سوم اضافه کردن Plugin
خب حالا فکر می کنیم شما یک پروژه به صورت Library دارید (هر پروژه باید شامل دو بخش باشه یکی میشه بخش کد سمپل و دومی یک module از نوع Library است.)
یک Plugin ساده است که تمامی این کار ها رو برای ما انجام خواهد داد.
حالا برید به روت پروژه و وارد فایل build.gradle از نوع Top-Level خط زیر را اضافه کنید.
1 | classpath 'com.novoda:bintray-release:{latest_version}' |
در بالا به جای {latest_version} آخرین نسخه این Plugin رو قرار دهید از کجا ؟ از این لینک (چون می خواهیم این آموزش برای همه و همیشه کار کنه کافی به لینک بروید و در همون بالا یه بخش هست نوشته download و یک عددی نوشته شده در آن بخش کافیه آن را به جای فیلد گفته شده قرار دهید.) همین الان که من دارم این مطلب رو می نویسم عدد برابر با 0.9.1 است.
یه همچین چیزی میشه در نهایت (کدهای این بخش با شما ممکنه کمی متفاوت باشه همه اینا رو قرار ندید فقط خط گفته شده را قرار دهید !)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | buildscript { repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.1.0-alpha07' // Step I: add this line classpath 'com.novoda:bintray-release:0.8.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { google() jcenter() } } task clean(type: Delete) { delete rootProject.buildDir } |
من تمامی بخش ها را قرار میدهم تا بدونید کدوم فایل هست 🙂
مرحله چهارم اضافه کردن اطلاعات به فایل build.gradle از نوع Module
1 2 3 4 5 6 7 8 9 10 11 12 | publish { def groupProjectID = '{package_name}' def artifactProjectID = '{name_of_your_library}' def publishVersionID = 'library_version_code' userOrg = '{username_of_bintray}' repoName = 'repository_name' groupId = groupProjectID artifactId = artifactProjectID publishVersion = publishVersionID desc = '{library description}' website = '{github_url} } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | //Step I: Add the below line apply plugin: 'com.novoda.bintray-release' apply plugin: 'com.android.library' publish { def groupProjectID = 'com.an.optimize' def artifactProjectID = 'optimize' def publishVersionID = '0.1.0' userOrg = 'murthyanitaa' repoName = 'Optimize' groupId = groupProjectID artifactId = artifactProjectID publishVersion = publishVersionID desc = 'Android library for displaying data based on JSON configuration fetched from server. With this library, you can kiss goodbye to string.xml, dimen.xml, arrays.xml. Keep all your string/integer/array config in one file. The library will automatically fetch the data from the url you provide.' website = 'https://github.com/anitaa1990/Optimize' } android { compileSdkVersion 27 defaultConfig { minSdkVersion 14 targetSdkVersion 27 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:27.1.1' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' } |
پروژه را sync کنید.
حالا ترمینال اندروید استودیو رو از اونپ بخش پایین باز کنید (گوشه سمت چپ اندروید استودیو اگر تغییرش نداده باشید.) و خط زیر را در آن تایپ کنید.
1 | gradle clean build bintrayUpload -PbintrayUser={userid_bintray} -PbintrayKey={apikey_bintray} -PdryRun=false |
وارد وب سایت شده بخش Edit profile و Api key کپی کنید و در خط بالا قرار بدید و در نهایت Enter !
پروژه در حال آپلود شدنه با سرعت ایران شاید یه 20 دقیقه ای طول بکشه من خودم زدم 5 دقیقه آپلود شد ولی بسته به اینترنتی که دارید شاید متفاوت باشه خسته نشید آپلود میشه !
website -> Edit Profile -> Api Key.
تا اینجا کار تموم شده ولی اگر خواستید بهتره که این پروژه رو لینک کنید به Jcenter البته یکم زمان میبره کافی هست مثل عکس زیر اقدام کنید.
یکم زمان میبره تا پروژه شما رو تایید کنند وقتی تایید شد یک notification میگیرید که کتابخانه متصل شد به jCenter
و در نهایت مثل زیر از کتابخانه می تونید استفاده کنید.
1 | implementation 'com.an.optimize:optimize:0.1.0' |
شاید یه خطایی در مرحله آپلود داشته باشید چون من خودم این خطا رو گرفتم و سرچ کردم باید کدهای زیر را به گریدل قرار دهید.
1 2 3 4 5 6 7 8 9 10 11 12 | publishing { publications { MyPub(MavenPublication) { groupId groupProjectID artifactId artifactProjectID version publishVersionID //don't forget to add bundleRelease artifact bundleRelease } } } publications = ['MyPub'] |
موفق و پیروز باشید.