فولدر های گردل Gradle از گونه های پوشه های تحت امان می نماید:
فولدر های گردل
Gradle از گونه های پوشه های تحت امان می نماید:
پیکربندی
بلید اسکریپت ها
اسکریپت های Init
فولدر های Property
بهدنبال به طور جدا از هم هر کدام از این پوشه ها را نظارت کرده و معنا آنهارا گستردن خوا هیم ب طراحی اپلیکیشن در مشهد خشید.
Settings
اسم پیش فرض این فولدر settings.gradle (برای Groovy) یاsettings.gradle.kts (برای Kotlin) میباشد.
غرض اساسی پوشه پیکربندی تصویب پروژه های فرعی میباشد که بخشی از مراحل بیلد خواهد بود.
با به کار گیری از طریق include قادر خواهیم بود پروژه های فرعی را در فولدر پیکربندی تصویب کنیم.
Gradle چه گونه میداند که مراحل بیلد فعلی بخشی از بیلد تک یا این که یکسری پروژه ای میباشد؟
همان گونه که میدانیم Gradle از بیلد تک پروژه ای و چندین پروژه ای جانبداری می نماید.
برای گزینش نوع مراحل بیلد فعلی، آغاز پوشه پیکربندی را در دایرکتوری فعلی و بعد در سلسله مراتب والد آن کاوش می نماید
و فرایند تحت را برای انتخاب نوع دنبال می نماید.
در حالتی که دایرکتوری والد و فعلی دربردارنده فولدر پیکربندی نباشند، Gradle بیلد را تحت عنوان یک پروژه واحد در حیث میگیرد.
در حالتی که دایرکتوری فعلی دارنده پوشه پیکربندی باشد، Gradle آن را تحت عنوان بیلد یکسری پروژه ای در لحاظ میگیرد و دایرکتوری فعلی را تحت عنوان یک پروژه والد (root) در حیث میگیرد.
آنگاه فولدر پیکربندی را میخواند تا پروژه های فرعی را که می بایست در فرایند بیلد گنجانده شوند، مشخص و معلوم نماید.
درحالتی که دایرکتوری فعلی دربردارنده فولدر پیکربندی نباشد، البته در صورتی پوشه پیکربندی در دایرکتوری والد باشد، Gradle آن را تحت عنوان بیلد تعدادی پروژه ای در لحاظ میگیرد.
آنگاه پژوهش می نماید که آیا زیرشاخه فعلی تحت عنوان یک پروژه فرعی در فولدر پیکربندی پروژه root تصویب شدهاست یا این که نه.
در صورتیکه پروژه فعلی بخشی از پروژه root باشد، تحت عنوان بخشی از تشکیل داد یک سری پروژه ای اعمال می گردد، در غیر این شکل، تحت عنوان یک پروژه واحد اعمال میگردد.
// can create variables
private val TAG = "Settings File: "
//can access rootProject object
rootProject.name = "GradleLearning"
//can access gradle object
val gradleVersion = gradle.gradleVersion
println("$TAG gradle version is $gradleVersion")
println("$TAG project name is ${rootProject.name}")
// can add projects which are part of build process.
include(":app")
// Access user defined properties using extra
val greetMessage = extra.properties.get("greetMessage")
if(greetMessage != null) {
println("$TAG value of user defined property greetMessage is $greetMessage")
}else{
println("$TAG user defined property greetMessage is not available.")
}
// Access System properties using System.getProperty()
val javaVersion = System.getProperty("java_version")
if(javaVersion != null) {
println("$TAG value of system property java_version is available $javaVersion")
}else{
println("$TAG value of system property java_version is not available")
}
مواقعی که در امر پوشه پیکربندی می بایست در لحاظ داشته باشید عبارتند از:
ما دراین فولدر به مثال های 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 اضافه کنیم، بعد از آن دیگر همه امور با گردل است.
project.buildscript {
// repository links to locate build script dependencies.
repositories {
google()
jcenter()
}
// build script dependencies
dependencies {
val kotlin_version = "1.3.61"
classpath("com.android.tools.build:gradle:4.0.0-alpha09")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlin_version}")
}
}
از طرف دیگر، تعلق پروژه به کدی که قرار میباشد بیلد خواهد شد، مربوط میشود.
برای مثال، فرض فرمائید پروژه ما برای اجرای آزمایشات به کتابخانه JUnit نیاز داراست.
به این ترتیب ما می بایست تعلق JUnit را در محدوده پروژه و خیر در محدوده اسکریپت بیلد فراخوانی کنیم.