سه شنبه ۲۱ آذر ۰۲ | ۱۵:۵۹ ۱۷۰ بازديد
تسک ها
Gradle همگی چیز را مبتنی بر پروژه ها و تسک ها تعریف طراحی اپلیکیشن در مشهد می نماید.
هر بیلد Gradle دربرگیرنده یک یا این که یکسری پروژه میباشد و این پروژه ها دربرگیرنده بعضی تسک ها میباشند.
اسکریپت های تشکیل داد Gradle چیزی جز Groovy نیستند :
task toLower {
doLast {
String someString = 'HELLO FROM BAELDUNG'
println "Original: "+ someString
println "Lower case: " + someString.toLowerCase()
}
}
ما خواهیم توانست تسک هایی را تمجید کنیم که به تسک های دیگر متعلق میباشند.
تعلق تسک ها را می اقتدار با ارسال آرگومان dependentOn: taskName در تسک تمجید کرد :
task helloGradle {
doLast {
println 'Hello Gradle!'
}
}
task fromBaeldung(dependsOn: helloGradle) {
doLast {
println "I'm from Baeldung"
}
}
افزونه ها در گردل
دو نوع افزونه در Gradle وجود داراست ؛ اسکریپت و باینری.
برای فایده مندی از یک همت مازاد، هر پلاگین می بایست دو مرحله را طی نماید: resolving و applying.
Resolving به معنای یافتن ورژن درست پلاگین jar و اضافه کردن آن به classpath پروژه میباشد.
Applying هم به معنای اجرای Plugin.apply(T) در پروژه میباشد.
Applying Script Plugins
در aplugin.gradle میتوانیم یک تسک به گستردن پایین تمجید کنیم :
task fromPlugin {
doLast {
println "I'm from plugin"
}
}
درحالتی که بخواهیم این پلاگین را در پوشه build.gradle پروژه خویش ایفا کنیم، فقط کاری که می بایست اجرا دهیم این میباشد کهاین خط را به build.gradle خویش اضافه کنیم:
apply from: 'aplugin.gradle'
در حال حاضر، اجرای فرمان gradle tasks می بایست تسک fromPlugin را در لیست تسک ها اکران دهد.
به کار گیری از افزونه های باینری با به کارگیری از افزونه های DSL
راجعبه افزودن یک افزونه core binary ، قادر خواهیم بود اسمهای کوتاه یا این که شناسه افزونه را اضافه کنیم:
plugins {
id 'application'
}
در حال حاضر تسک جاری ساختن از پلاگین نرم افزار بایستی در یک پروژه برای اجرای هر jar قابل انجام ، در دسترس باشد.
برای انجام یک پلاگین انجمن، می بایست یک شناسه پلاگین تماماً دارای شرایط را بیان کنیم:
plugins {
id "org.shipkit.bintray" version "0.9.116"
}
محدودیت های پلاگین های DSL عبارتند از:
از کد Groovy در باطن بلوک پلاگین ها مدد نمی نماید.
افزونه ها DSL را نمی قدرت در افزونه اسکریپت، پوشه settings.gradle یا این که در اسکریپت های init نوشت.
Plugins DSL هنوز در هم اکنون توسعه و گسترش میباشد پس DSL و بقیه پیکربندی ممکن میباشد در ورژن های آتی Gradle تغییر و تحول نمایند.
رئیس Dependency
Gradle از سیستم رئیس Dependency بسیار انعطاف پذیر نگهبانی می نماید، این سیستم با طیف کبیر ای از رویکردهای جان دار سازگار میباشد.
شایسته ترین طریقها برای رئیس Dependency در Gradle عبارتند از versioning ، versioning پویا، resolving version conflicts و managing transitive dependencies.
Declaring Dependencies
بیایید به مثالی از اضافه کردن برخی Dependencies ها (Spring و Hibernate) با به کارگیری از یکسری شیوه گوناگون نگاه کنیم:
dependencies {
compile group:
'org.springframework', name: 'spring-core', version: '4.3.5.RELEASE'
compile 'org.springframework:spring-core:4.3.5.RELEASE',
'org.springframework:spring-aop:4.3.5.RELEASE'
compile(
[group: 'org.springframework', name: 'spring-core', version: '4.3.5.RELEASE'],
[group: 'org.springframework', name: 'spring-aop', version: '4.3.5.RELEASE']
)
testCompile('org.hibernate:hibernate-core:5.2.12.Final') {
transitive = true
}
runtime(group: 'org.hibernate', name: 'hibernate-core', version: '5.2.12.Final') {
transitive = false
}
}
ما Dependencies ها را در تنظیماتهای متفاوت اعلام میکنیم : کامپایل، testCompile و مجال اعمال در پوستههای متعدد.
برخی اوقات ما به Dependencies هایی نیاز داریم که مصنوعات زیادی دارا هستند.
در اینگونه مواقعی، قادر خواهیم بود یک نشانه تنها آرتیفکت @extensionName (یا این که ext به صورت بسطیافته) برای دانلود آرتیفکت متبوع اضافه کنیم:
runtime "org.codehaus.groovy:groovy-all:2.4.11@jar"
runtime group: 'org.codehaus.groovy', name: 'groovy-all', version: '2.4.11', ext: 'jar'
در اینجا، آرم jar@ را اضافه کردیم تا صرفا artifact jar را فارغ از Dependencies دانلود کنیم.
برای اضافه کردن Dependencies به هر پوشه محلی، میتوانیم از چیزی مشابه بدین استعمال کنیم:
compile files('libs/joda-time-2.2.jar', 'libs/junit-4.12.jar')
compile fileTree(dir: 'libs', include: '*.jar')
Multi-Project Builds
در مرحله initialization ، Gradle گزینش می نماید که کدام پروژه ها قرار میباشد در Multi-Project Builds کمپانی نمایند.
این مسئله معمولاً در پوشه settings.gradle که در ریشه پروژه قراردارد بیان میشود.
Gradle همینطور مثال هایی از پروژه های کمپانی کننده را ساخت و ساز می نماید.
در مرحله تنظیمات، تک تک مثالهای پروژه ساخت و ساز گردیده مبنی بر تنظیمات خصوصیت Gradle در شکل تقاضا تنظیمات می شوند.
دراین خصوصیت، فقط پروژه های مایحتاج برای اجرای یک شغل خاص تنظیمات می گردند.
براین اساس، فرصت تنظیمات برای ایجاد کرد یکسری پروژه تعالی بسیار کاهش مییابد. این خصوصیت هنوز در اکنون پیشرفت میباشد.
در غایت، در مرحله اعمال، ذیل تیم ای از تسک های، ساختوساز و تنظیمات گردیده ایفا میشود.
برای شعور این سه فاز میتوانیم کد را در پوشه های settings.gradle و build.gradle در اختیار بگذاریم.
اصول روانشناسی طراحی اپلیکیشن که باید بدانید