بسم الله الرحمن الرحیم
سلام امروز میخواهیم اموزش ساخت کتابخونه و انتشارش در jitpack به شکل عمومی و خصوصی رو بدم با این کار میتونید کتابخونه واسه خودتون بسازید واونو در Github به انتشار بزارید و یا به شکل خصوصی با Gitlab این کار انجام بدین و اونو تو تمام پروژه هاتون استفاده کنید در واقع همون implementation که مال کتابخونه ها هست و با اضافه کردنش به اندروید استدیو کتابخونهش به اندروید استدیو اضافه میشه میگم امیدوارم خوشتون بیاد :)
سناریو زیر دنبال کنید تا دستتون بیاد
خوب اول باید یک پروژه در اندروید استدیو ایجاد کنیم و اسمشو مثلا بزاریم LogShow که کار این پروژه و کتابخونه اینکه یک تابع داره و بهش یک استرینگ میدیم و اونو log میکنه !
حالا زمان ساخت کتابخونست به مسیر زیر برید
File > New > New Module...
بعد Android Library رو انتخاب و NEXT بزنید
و اطلاعات مثل تصویر زیر پر کنید و FINISH بزنید
کتابخونتون امادست :)
خوب برای اینکه بتونید از کتابخونه در این پروژه استفاده کنید باید اونو ایمپورتش کنید اول به settings.gradle برید و دو تا include دی را به شکل زیر تغییر بدین در واقع یک include دش کنید
include ':app' , ':logshow'
چون اگه دو تا باشه تو پروژه فعلی نمیشه روش تست زد و یک پروژه دیگه در نظر میگیره !
و بعد برین به
build.gradle (Module: app)
و کتابخونه که ساختید به پروژه فعلی اضافه کنید
در dependencies ها خط زیر را اضافه کنید
dependencies { . . . implementation project(':logshow') }
و بعد Sync کنید پروژه رو
حالا به پوشه کتابخونتون بریم و یک کلاس کاتلینی به نام LogShow بسازید
و کد های زیر داخلش بزارید کد خاصی نیست یک تابست که یک رشته میگیره و log میکنه
class LogShow { fun logShow(value: String) { Log.i("TAG", value) } }
خوب حله در واقع الان کتابخونتون امادست و حالا میریم یه تستی ازش تو پروژه فعلی بگیریم در واقع یک example واسش درست کنیم ! در MainActivity پروژه فعلی کد های زیر بزارید در واقع یک رشته دارم log میکنم با کتابخونه ای که ساختیم
class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val showLog = LogShow() showLog.logShow("Hello World!") } }
خوب بعد اجرا متن Hello World! در logcat به نمایش در میاد !
خوب تا اینجا امید وارم خسته نشده باشید الان در واقع کتابخونه رو ساختیم و example رو هم ساختیم و حالا موقع انتشارش هست حالا چه بصورت عمومی یا خصوصی !
خوب در جریان هستین که دو سرویس میزبانی وب برای پروژههای سیستم سورس کنترل گیت به نام Github و Gitlab موجوده البته سرویس های میزبانی دیگریم هستن ولی ما تو این اموزش از این دو استفاده میکنیم Github به شکل رایگان به ما اجازه میده سورس رو به شکل عمومی انتشار بدیم و خصوصیش رو باید پول بدیم و Gitlab هم عمومی و هم خصوصی رو رایگان میده ولی چون Github عمومیت بیشتری تو انتشار به شکل عمومی داره ما در این اموزش از Github برای انتشار عمومی و Gitlab برای انتشار خصوصی استفاده میکنیم !
خوب اول به شکل عمومی
با اکانت Github وارد سایتش بشید و یک New repository ایجاد کنید
خوب اطلاعات مربوط به remote شدن(به شکل https) به Git و commit شدنشو تو Terminal اندروید استدیو بزنید
به شکل زیر عمل کنید
git init git add . git commit -a -m "first commit" git remote add origin https://github.com/flashiran1/LogShow.git git push -u origin master
این ادرس https://github.com/flashiran1/LogShow.git ادرس Github منه مال شما فرق داره بعد ساخت repository به شما میده ادرس رو!
ممکنه در push کردن ازتون نام کاربری و رمز بخواد که مال Github تون رو وارد کنید !
خوب بریم به اندروید استدیو !
در (top build پروژه)
build.gradle (Project: LogShow)
خط زیر را در dependencies اضافه کنید
dependencies { . . . classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1' }
در (build کتابخونه)
build.gradle (Module: logshow)
خط زیر را در بالا خطوط اضافه کنید
. . . apply plugin: 'com.github.dcendents.android-maven' group='com.github.your_github_name' android { . . .
در group باید در واقع اسم پکیج بزارید که بعدن با اون میشه implementation کرد !
من به شکل زیر میزارم
group='com.github.flashiran1'
خوب حالا Sync کنید و پروژه رو به شکل زیر در Terminal به Github اضافه کنید
git add . git commit -a -m "add maven" git push -u origin master
خوب در Github پروژه برید به releases و Create a new release بزنید
و اطلاعات به شکل زیر پر کنید و روی Publish release بزنید
در واقع دارید نسخه نهایی صادر میکنید واسه پروژه بعد تغییرات مثلا زیاد :)
خوب ورژن 0.0.1 امادست .
خوب برید به سایت
و در کادر , url که از سایت Github دریافت کردید رو وارد کنید و Look up بزنید و :) :) implementation شما امادست :)))
بجای Tag ورژن بزارید مال من شد
dependencies { implementation 'com.github.flashiran1:LogShow:0.0.1' }
در واقع خود jitpack میره از Github با url مربوط به پروژه implementation شو میگیره
خوب این implementation تو هر پروژه ای میتونید استفاده کنید و به هر کسی بدیم چون عمومیه
و حتی میتونید یک README.md تو پروژه Github تان بسازید و اونجا واسه عموم بزارید با توضحیات کتابخونه و...
بریم برای خصوصی
خوب تقریبا مثل عمومیه ولی یک سری جاش فرق داره من همین پروژه واسه خصوصی تغیر میدم !
خوب وارد اکانت Gitlab بشید و New project کنید و اطلاعات مثل تصویر زیر پر کنید و روی Create project بزنید
خوب از پروژه قبل باید اول قسمت group تغییر بدیم و بعد remote مال Github رو حذف کنیم و مال Gitlab که بعد ساخت پروژه دریافت کردید اضافه کنیم و بعد به Gitlab پوش کنیم
به شکل زیر اول تغییر group در (build کتابخونه)
build.gradle (Module: logshow)
به شکل زیر
group='com.gitlab.flashiran1'
من این شکلیش کردم خودتون میتونید چیز دیگری بزارید
و بعد در Terminal این کد ها رو میزنیم تا پروژه در Gitlab پوش بشه
git add . git commit -a -m "cheng group" git remote remove origin git remote add origin https://gitlab.com/flashiran1/logshow.git git push -u origin master
ممکنه ازتون در push نام کاربری و رمز Gitlab رو بخواد که واردش کنید !
خوب حالا برید به Settings در سایت Gitlab
و بعد در Access Tokens یک توکن جدید بگیرید اطلاعات مثل زیر پر و تیک بزنید ! (در واقع دارین دسترسی میدید به jitpack تا پروژه های شما رو ببینه)
خوب یک Access Token به من میده حالا این Access Token سایت Gitlab رو کپی میکنیم و میریم سایت jitpack حالا در بالای سایت روی Sign In میزنیم و وارد سایت میشیم بر روی منو که همون جایی که Sign In بود میزنیم و روی Settings میزنیم و کد دریافتی از Gitlab در قسمت GitLab.com وارد میکنیم (در این قسمت برای انتشار خصوصی میشه از بقیه سرویس های ورژن کنترل گیت هم استفاده کرد !) و جایی در صفحه کلیک میکنیم تا تیک سبز بزنه !(این قسمت خیلی بد طراحی کردن قبول دارم!)
خوب حالا بریم به اول سایت jitpack و ادرس https سایت Gitlab تان را در کادر وارد و lookup بزنید
واسه من ادرسش هست
https://gitlab.com/flashiran1/logshow.git
و تمام :) همینجوری که مشاهده میکنید implementation به شما داد !
حالا کتابخونه خصوصی شد و برای استفاده تو پروژه باید از Access Token استفاده کنید !
حالا برای استفاده از حالت خصوصی در پروژه دیگر باید اول Access Token از صفحه settings سایت jitpack کپی کنید
بعد کپی برین تو پروژه که میخواید از این کتابخونه خصوصی استفاده کنید
در gradle.properties پروژه در اخر فایل خط زیر را اضافه کنید
authToken=jp_jc6evn28vncnt305fivq6s37i6
همون کد سایت jitpack جای jp_jc6evn28vncnt305fivq6s37i6 بزارید
و در (top build پروژه)
build.gradle (Project: NewProject)
خطوط زیر را در allprojects و dependencies اضافه کنید
allprojects { repositories { . . . maven { url "https://jitpack.io" credentials { username authToken } } } }
و در
build.gradle (Module: app)
و implementation که از jitpack گرفتید در و dependencies ها اضافه کنید مال من اینجوریه
dependencies { implementation 'com.gitlab.flashiran1:logshow:0.0.1' }
و Sync کنید میبینید که کتابخونه به پروژه اضافه شد
خسته نباشید اموزش تموم شد امیدوارم خوشتون اومده باشه ببخشید بخاطر اینکه یکم زیاد شد چون می خواستم همه رو توضیح بدم
منابع که استفاده کردم
Publish an Android Library by JitPack