2015-10-20 2 views
2

Моя установка градации принимает аргументы во время выполнения, которые проверяются в сценарии оболочки, который вызывает вызовы задачи Gradle Exec. Однако, чтобы достичь этой точки, Gradle имеет дело с зависимостями и проводит достаточное количество времени до того, как будет запущен окончательный скрипт, который затем выкинет ошибку, если аргументы не будут переданы.Можно ли выпустить ошибку, если аргументы не предоставлены Gradle?

Сложение задача Gradle выглядит следующим образом:

task buildAll(type: Exec) { 
    environment['PROJECT_ROOT'] = "${projectDir}" 
    workingDir rootProject.projectDir.path 
    executable rootProject.projectDir.path + "/script.ksh" 
     if (project.hasProperty('ARGS')) { 
     args(ARGS.split(',')) 
     } 
} 

Gradle называется следующим образом:

./gradlew build -PARGS="-arg1,value1,-arg2,value2,-arg3,-arg4,value4" 

Я намерен проверить -arg2 и если это не предусмотрено, я хотел бы Gradle build to fail при некотором использовании. Это возможно?

ответ

2

можно добавить, если блок в самом начале сценария:

if (!project.hasProperty('lol')) { 
    throw new GradleException("'lol' property is required!") 
} 

buildscript { 
    repositories { 
     mavenCentral() 
    } 

    dependencies { 
     classpath 'com.google.guava:guava:18.0' 
    } 
} 

однако это не помешает Gradle от разрешения зависимостей самого сценария - buildscript блок будет оцениваться первым.

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