Существует два разных варианта объявления задачи в Gradle.Понимание различных вариантов объявления задачи в Gradle
1.
task myTask() {}
2.
task task3 << {}
Чтобы проверить, как они ведут себя, I've создал образец андроида проект
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.android.gradletest"
minSdkVersion 15
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.1.1'
}
task task1() {
println "Task 1"
}
task task2() {
println "Task 2"
}
task task3 << {
println "Task 3"
}
task task4() {
println "Task 4"
}
Первая попытка была затрачена на выполнение задачи 1
Task 1
Task 2
Task 4
:app:task1 UP-TO-DATE
BUILD SUCCESSFUL
Total time: 6.462 secs
Process finished with exit code 0
Как вы видите, не только лишь Задача 1 выполняется, но полная сборка БЕЗ Задача 3.
Вторая попытка был запущен Задача 3 непосредственно:
Task 1
Task 2
Task 4
:app:task3
Task 3
BUILD SUCCESSFUL
Total time: 6.577 secs
Process finished with exit code 0
Результат снова, кажется, что полная сборка запускается, но на этот раз с задачей 3 в конце.
Третья попытка просто строить полный проект, нажав на кнопку запуска в Android Studio
Task 1
Task 2
Task 4
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:checkDebugManifest
:app:preReleaseBuild UP-TO-DATE
:app:prepareComAndroidSupportAppcompatV72211Library UP-TO-DATE
:app:prepareComAndroidSupportSupportV42211Library UP-TO-DATE
:app:prepareDebugDependencies
:app:compileDebugAidl UP-TO-DATE
:app:compileDebugRenderscript UP-TO-DATE
:app:generateDebugBuildConfig UP-TO-DATE
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets UP-TO-DATE
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources UP-TO-DATE
:app:mergeDebugResources UP-TO-DATE
:app:processDebugManifest UP-TO-DATE
:app:processDebugResources UP-TO-DATE
:app:generateDebugSources UP-TO-DATE
:app:processDebugJavaRes UP-TO-DATE
:app:compileDebugJava
Note: Recompile with -Xlint:deprecation for details.
:app:compileDebugNdk UP-TO-DATE
:app:compileDebugSources
:app:preDexDebug
:app:dexDebug
:app:validateDebugSigning
:app:packageDebug
:app:zipalignDebug
:app:assembleDebug
Information:BUILD SUCCESSFUL
Как вы можете видеть, все получает срабатывает, кроме задачи 3!
Теперь у меня есть два вопроса:
- Что такое < < задача декларации Мент для, когда мы aren't в состоянии запустить его автономный и не запускается в процессе сборки?
- Почему он запускает несколько задач, когда я выполняю только одно из меню задач и как я могу выполнить только один?