آموزش انتشار کتابخانه اندروید در 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 خط زیر را اضافه کنید.
classpath 'com.novoda:bintray-release:{latest_version}'
در بالا به جای {latest_version} آخرین نسخه این Plugin رو قرار دهید از کجا ؟ از این لینک (چون می خواهیم این آموزش برای همه و همیشه کار کنه کافی به لینک بروید و در همون بالا یه بخش هست نوشته download و یک عددی نوشته شده در آن بخش کافیه آن را به جای فیلد گفته شده قرار دهید.) همین الان که من دارم این مطلب رو می نویسم عدد برابر با 0.9.1 است.
یه همچین چیزی میشه در نهایت (کدهای این بخش با شما ممکنه کمی متفاوت باشه همه اینا رو قرار ندید فقط خط گفته شده را قرار دهید !)
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
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}
}
در بالا باید شما اطلاعات خودتتون رو قرار دهید در ادامه کل این فایل رو قرار میدهم تا بدونید چی هست چی باید پر کنید اطلاعات شما و پروژه شما چیز خاصی نیست و همینطور لینک صفحه github مربوط به اون پروژه
//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'
}
خب در بالا اولین کار اینکه شما باید خط apply plugin: ‘com.novoda.bintray-release’ رو اضافه کنید کار دوم میشه بخش publish اطلاعات خودتان را جایگزین کنید. (شاید شما ویژگی های دیگه هم ست کرده باشید مثلا از 5 تا کتاب خانه هم استفاده کرده باشید.)
پروژه را sync کنید.
حالا ترمینال اندروید استودیو رو از اونپ بخش پایین باز کنید (گوشه سمت چپ اندروید استودیو اگر تغییرش نداده باشید.) و خط زیر را در آن تایپ کنید.
gradle clean build bintrayUpload -PbintrayUser={userid_bintray} -PbintrayKey={apikey_bintray} -PdryRun=false
به جای {userid_bintray} باید نام یا آیدی که هنگام ثبت نام ساختید را قرار دهید و به جای {apikey_bintray} باید Api key قرار دهید نحوه به دست آوردن api key به صورت زیر است.
وارد وب سایت شده بخش Edit profile و Api key کپی کنید و در خط بالا قرار بدید و در نهایت Enter !
پروژه در حال آپلود شدنه با سرعت ایران شاید یه 20 دقیقه ای طول بکشه من خودم زدم 5 دقیقه آپلود شد ولی بسته به اینترنتی که دارید شاید متفاوت باشه خسته نشید آپلود میشه !
website -> Edit Profile -> Api Key.

تا اینجا کار تموم شده ولی اگر خواستید بهتره که این پروژه رو لینک کنید به Jcenter البته یکم زمان میبره کافی هست مثل عکس زیر اقدام کنید.

یکم زمان میبره تا پروژه شما رو تایید کنند وقتی تایید شد یک notification میگیرید که کتابخانه متصل شد به jCenter
و در نهایت مثل زیر از کتابخانه می تونید استفاده کنید.
implementation 'com.an.optimize:optimize:0.1.0'
اینا در بخش publish ست شده بود شما باید پکیج نیم و versiocode خودتون را قرار دهید.
شاید یه خطایی در مرحله آپلود داشته باشید چون من خودم این خطا رو گرفتم و سرچ کردم باید کدهای زیر را به گریدل قرار دهید.
publishing {
publications {
MyPub(MavenPublication) {
groupId groupProjectID
artifactId artifactProjectID
version publishVersionID
//don't forget to add bundleRelease
artifact bundleRelease
}
}
}
publications = ['MyPub']
موفق و پیروز باشید.
آموزش برنامه نویسی اندروید |