2015-10-20 39 views
2

我的gradle設置在運行時接受在Gradle Exec任務調用的shell腳本中檢查的參數。但是,爲了達到這一點,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(',')) 
     } 
} 

搖籃被稱爲如下:

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

我打算檢查-arg2,如果不提供的話,我希望gradle這個構建失敗並顯示某種用法。這可能嗎?

回答

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塊將被首先計算。

相關問題