如果没有向Gradle提供参数,是否可能抛出错误?

时间:2015-10-20 04:33:13

标签: gradle

我的gradle设置在运行时接受参数,这些参数在Gradle Exec任务调用的shell脚本中检查。但是,为了达到这一点,Gradle处理依赖关系并在执行结束脚本之前花费大量时间,如果没有传递参数,则会抛出错误。

gradle中的构建任务如下所示:

angular.module('myApp', [])
.controller('MyCtrl', function($scope) {
  $scope.items = [1,2,3,4,5,6,7,8,9,10];
  // make an array of color classes
  $scope.colors = ['purple', 'red', 'green', 'blue', 'orange'];
})
;

Gradle的调用方式如下:

<div ng-app="myApp" ng-controller="MyCtrl">
  <div ng-repeat="item in items">
    <!-- use modulus operator to pick the right class per item -->
    <div class="tile" ng-class="colors[$index % colors.length]">{{item}}</div>
  </div>
</div>

我打算检查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构建失败并显示某种用法。这可能吗?

1 个答案:

答案 0 :(得分:2)

您可以在脚本的最开头添加if块:

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

buildscript {
    repositories {
        mavenCentral()
    }

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

但是它不会阻止gradle解析脚本本身的依赖关系 - 将首先评估buildscript块。