2016-08-12 62 views
2

我有一些自定義Gradle任務需要將某些屬性作爲CLI參數傳遞給腳本(使用-P)。例如:是否有內置簡潔的方式來定義給定的Gradle任務所需的屬性?

task example(type: Copy) { 
    if (!hasProperty('foo')) { 
     throw new GradleException("The [foo] property is required") 
    } 

    if (!hasProperty('bar')) { 
     throw new GradleException("The [bar] property is required") 
    } 

    if (!hasProperty('baz')) { 
     throw new GradleException("The [baz] property is required") 
    } 
} 

確實搖籃提供一個內置的和簡潔的方式來定義這樣的要求?

回答

1

沒有有條件檢查的情況下沒有內置的可能性。

但你可以用net.saliman.properties插件輕鬆完成。

the plugin documentation

requiredProperty

requiredProperty "somePropertyName" 

此方法引發MissingPropertyException如果未定義的命名屬性。

requiredProperties

requiredProperties "property1", "property2", ... 

此方法拋出如果任何命名屬性沒有定義

recommendedProperty

recommendedProperty "somePropertyName", "default File Text" 

當存在屬性此方法是很方便的一個MissingPropertyException有一些默認值否則。例如,構建文件可能會定義它,或者應用程序可能能夠從系統文件中獲取它。這對於提醒新開發人員必須在他們的系統中配置某些東西非常有用。

該方法檢查給定屬性是否已定義。如果不是,則會顯示一條警告消息,提醒用戶將使用默認值,如果已給出defaultFile,則消息將包含該消息,以便開發人員知道哪個文件將提供默認值。

你的任務將是這樣的:

task example(type: Copy) { 
    requiredProperties "foo", "bar", "baz" 
} 
相關問題