我的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构建失败并显示某种用法。这可能吗?
答案 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
块。