web-dev-qa-db-ja.com

Gradleの$ PROPERTYのデフォルト値

この単純なbuild.gradleスクリプトのデフォルト値を指定するにはどうすればよいですか。

println "Hello $build_version" 

エラーが発生しないように:

A problem occurred evaluating root project 'hello_gradle'.
> Could not find property '$build_version' on root project 'hello_gradle'.

Nullのチェックなど、いくつかの演算子を試しましたが、プロパティへの参照だけでは失敗すると思います。私は常にプロパティを提供することでそれを修正できましたが、それは理想的ではありません。

gradle -Pbuild_version=World
27
if (!project.hasProperty("build_version")) {
    ext.build_version = "1.0"
}
30

これにより、プロパティが存在するかどうかが確認され、存在しない場合はデフォルト値が割り当てられます。

def build_version=project.properties['build_version'] ?: "nokey"
16

これは私のために働きました:

def AWS_ACCESS_KEY="nokey"
def AWS_SECRET_KEY="nokey"

if (project.hasProperty("AWS_ACCESS_KEY")) {
    AWS_ACCESS_KEY=project.get("AWS_ACCESS_KEY")
}
if (project.hasProperty("AWS_SECRET_KEY")) {
    AWS_SECRET_KEY=project.get("AWS_SECRET_KEY")
}
3
Russ

これを自分のbuild.gradleに追加します。

_String propValue(String propName, String defValue) {
    (project.hasProperty(propName) && project.getProperty(propName)) ? project.getProperty(propName) : defValue
}
_

次に、必要に応じてpropValue('build_version', 'nokey')を使用します。

0
Fred Simon

これを試しましたか?:

println "Hello ${project.getProperty('build_version', 'default_string_value')}"
0
MagMax

三項演算子を使用したワンライナー:

println "Hello ${project.hasProperty('build_version') ? getProperty('build_version') : 'World'}"

gradle <your_task> -Pbuild_version=SomethingElse

0
zoomout