Incremental Builds :
Gradle فعالیت مارا با بیلد صعودی سریع خیس می نماید، بهاین مضمون که صرفا تسک های
طراحی اپلیکیشن در مشهد ضروری را ایفا می نماید.چنانچه سورس کد را کامپایل کنیم، رسیدگی می نماید که آیا منابع نسبت به اجرای قبل عوض شده اند یا این که نه.
در حالتی که کد تغییر و تحول نماید، بعد اعمال شود.
ولی، درصورتیکه کد تغییرو تحول نکرده باشد، جاری ساختن را رد می نماید و تسک تحت عنوان آپدیت گردیده نشان گذاری میگردد.
الگوریتم های متعددی در Gradle برای جاری ساختن این فعالیت وجود دارااست.
Familiar with the Java :
ما برای اجرای Gradle به JVM نیاز داریم، به این ترتیب دستگاه ما می بایست یک کیت توسعه و گسترش جاوا (JDK) داشته باشد.
Gradle با اکثر خصوصیت های جاوا آشنا میباشد.
این یک امتیاز برای یوزرها جاوا میباشد چون خواهیم توانست از APIهای استاندارد جاوا استعمال کنیم، مانند افزونهها و تسک های سفارشی.
به این ترتیب اجرای Gradle بر روی پلتفرم های متفاوت را سهل و آسان می نماید.
Gradle تنها به ایجاد کرد پروژه های JVM محصور نمیشود. همینطور از تشکیل داد پروژه های مستقر تامین می نماید.
Performance :
Gradle در کوشش بسیار سریع میباشد. در کل مناطق حدود دو موازی سریعتر از Maven و در بیلدهای بلندمرتبه با به کارگیری از build-cache صد موازی سریعتر میباشد.
پوشه های گردل
Gradle از گونه های فولدر های پایین هواخواهی می نماید:
پیکربندی
بلید اسکریپت ها
اسکریپت های Init
فولدر های Property
درپی به طور جداازهم هرمورد از این پوشه ها را رسیدگی کرده و مضمون آنهارا گستردن خوا هیم اعطا کرد.
Settings
اسم پیش فرض این پوشه settings.gradle (برای Groovy) یاsettings.gradle.kts (برای Kotlin) میباشد.
مقصود اساسی فولدر پیکربندی تصویب پروژه های فرعی میباشد که بخشی از پروسه بیلد خواهد بود.
با استعمال از طریق include میتوانیم پروژه های فرعی را در فولدر پیکربندی تصویب کنیم.
Gradle چهطور میداند که فرایند بیلد فعلی بخشی از بیلد تک یا این که تعدادی پروژه ای میباشد؟
همانگونه که میدانیم Gradle از بیلد تک پروژه ای و یکسری پروژه ای حفاظت می نماید.
برای گزینش نوع روند بیلد فعلی، آغاز پوشه پیکربندی را در دایرکتوری فعلی و بعد از آن در سلسله مراتب والد آن کاوش می نماید
و فرآیند ذیل را برای انتخاب نوع دنبال می نماید.
در صورتیکه دایرکتوری والد و فعلی دربردارنده فولدر پیکربندی نباشند، Gradle بیلد را تحت عنوان یک پروژه واحد در حیث میگیرد.
در حالتیکه دایرکتوری فعلی دارنده فولدر پیکربندی باشد، Gradle آن را تحت عنوان بیلد چندین پروژه ای در حیث میگیرد و دایرکتوری فعلی را تحت عنوان یک پروژه والد (root) در حیث میگیرد.
آنگاه پوشه پیکربندی را میخواند تا پروژه های فرعی را که می بایست در روند بیلد گنجانده شوند، معین نماید.
چنانچه دایرکتوری فعلی دربردارنده فولدر پیکربندی نباشد، ولی در صورتی پوشه پیکربندی در دایرکتوری والد باشد، Gradle آن را تحت عنوان بیلد تعدادی پروژه ای در لحاظ میگیرد.
آنگاه پژوهش می نماید که آیا زیرشاخه فعلی تحت عنوان یک پروژه فرعی در فولدر پیکربندی پروژه root تصویب گردیدهاست یا این که نه.
در صورتیکه پروژه فعلی بخشی از پروژه root باشد، تحت عنوان بخشی از ایجاد کرد یکسری پروژه ای انجام میشود، در غیر این شکل، تحت عنوان یک پروژه واحد انجام میگردد.
مواقعی که در زمینه ی فولدر پیکربندی بایستی در حیث داشته باشید عبارتند از:
ما درین پوشه به مثال های gradle و rootProject دسترسی داریم.
ما به خصوصیتهایی دسترسی داریم که هم در gradle.properties اعلام گردیدهاند و هم از خط دستور ارائه گردیدهاند.
Build Scripts
یک ارتباط تنگاتنگی فی مابین یک مثال پروژه و یک پوشه بیلد وجود داراست.
بیلدهای پروژه واحد ، فولدر بیلد دربرگیرنده dependencies ها برای هر دو اسکریپت بیلد و پروژه میباشد.
بیلد چندین پروژه ، هر پروژه فرعی ممکن میباشد فولدر بیلد خویش را داشته باشد و هر پروژه فرعی در شکل وجود، با اجرای پوشه بیلد آن تحلیل شود.
پوشه بیلد یک پروژه root معمولاً برای به اشتراک گذاری چیزهای مشترکی که در همگی پروژه های فرعی لازم میباشد به کار گیری میگردد.
از جمله، dependency های اسکریپت، و repository links را برای جای یابی آن dependency ها بسازید.
و تسک های بی آلایش مانند تمیز کردن، که منابع ساخت و ساز گردیده گذشته را به وسیله پروژه root و هر پروژه فرعی حذف می نماید.
بیلد dependency اسکریپت در مقابل dependency پروژه
dependency اسکریپت بیلد در معنای کتابخانه ها یا این که پلاگین هایی میباشد که بیلد Gradle ما به آن ها متعلق میباشد.
مثلا، ما میخواهیم با به کارگیری از Gradle یک پروژه اندروید بسازیم، بعد بایستی تعلق build script را به com.android.tools.build:gradle اضافه کنیم، بعداز آن دیگر همه امور با گردل میباشد.