2016-11-17 1 views
1

У меня есть задача, которая исходит от подключаемого модуля, и я хочу перезаписать его только при компиляции для debug buildType.Как перезаписать задачу градиента только для определенного типа buildType

Я попытался перезапись в рамках отладки:

buildTypes { 
    debug { 
     task newRelicInstrumentTask(overwrite: true) << {} 
     task newRelicDeinstrumentTask(overwrite: true) << {} 
    } 
} 

но также переопределен его для buildType выпуска.

Я также попытался сделать следующее:

buildTypes.all{ theBuildType -> 
    print(theBuildType.name) 
    if (theBuildType.name == "debug") 
    { 
     task newRelicInstrumentTask(overwrite: true) << {} 
     task newRelicDeinstrumentTask(overwrite: true) << {} 
    } 
    } 

Но это также overides, когда я уверен, выполнение assembleRelease.

Так как я могу переопределить его только тогда, когда я запускаю сборку Debug?

ответ

0

Это то, что работает лучше всего в конце концов:

if ((gradle.startParameter.taskNames.size() == 1) && (gradle.startParameter.taskNames.get(0).contains(
     "assembleDebug"))) { 
    task newRelicInstrumentTask(overwrite: true) << { 
    } 

    task newRelicDeinstrumentTask(overwrite: true) << { 
    } 
    } 
1

Что-то вроде:

gradle.taskGraph.whenReady { TaskExecutionGraph teg -> 
    if (teg.hasTask('assembleDebug')) { 
     tasks.getByPath('newRelicInstrumentTask').enabled = false 
     tasks.getByPath('newRelicDeinstrumentTask').enabled = false 
    } 
} 

См TaskExecutionGraph

 Смежные вопросы

  • Нет связанных вопросов^_^