2016-10-14 9 views
0

のGradleは、CSVファイルを生成するために取得するために作業すると、コマンドラインから渡すことができる私のbuild.gradleファイルのプロパティを作成しようとしているため「プロパティ未知のプロパティ」を取得できませんでした。は、タスク

私はgradle.propertiesに次のように挿入した:私のbuild.gradleファイルで

userCount=100 

task writeUsersFile << { 
    if (project.hasProperty('userCount')){ 
     args = getProperty(userCount) 
    } 
    outputFile.withWriter { out -> 
    1.upto($userCount) { 
     out.println(String.format(userNameFmt, it, testPassword)) 
    } 
    } 
} 

私はコマンドラインからGradleのプロセスを実行すると、私は次のように遭遇します。

Could not get unknown property '100' for task ':writeUsersFile' of type org.gradle.api.DefaultTask. 

パラメータをコマンドラインから渡すと、デフォルト値の '100'から私が渡している値に変更してください。

も試してみました:

task writeUsersFile << { 
    userCount = project.hasProperty('userCount') ? project.userCount : '' 
    outputFile.withWriter { out -> 
    1.upto($userCount) { 
     out.println(String.format(userNameFmt, it, testPassword)) 
    } 
    } 
} 

との結果がでていること:

Could not get unknown property '$userCount' for task ':writeUsersFile' of type org.gradle.api.DefaultTask. 

ファイルの書き込みが正常に動作している私は私のビルドに直接userCount=100(または任意何でも数)を定義した場合。 gradleでは、ロードブロッキングがユーザー数の引数を設定しています。

+0

私の答えはあなたの問題を解決しましたか?はいの場合は、この問題を解決したことを示す答えを受け入れることをお勧めしますか? [ここ](http://stackoverflow.com/help/someone-answers)を参照してください。いいえの場合は、質問の詳細や回答が不足している箇所を追加してください。 – dpr

+0

あなたの答えは正しい答えに向かって私をプッシュするのに役立ちました。タスクブロック内のプロパティを宣言するときに、私はまだ問題に遭遇していました。私はちょうど 'userCount'を使用するようにあなたのアドバイスを受け取り、私のために問題を解決したものを追加します。 –

答えて

0

次の変更は、私が遭遇した問題を解決しました。 upto()メソッド呼び出しでuserCountを直接使用したとき、解析の問題が発生しました。次のブロックは、エラーメッセージとその後の解析問題を解決します。

task writeUsersFile << { 
    outputFile.withWriter { out -> 
    1.upto(Integer.parseInt(userCount)) { 
     out.println(String.format(userNameFmt, it, testPassword)) 
    } 
    } 
} 
0

あなたは、単にgetPropertyを使用せずにuserCountを使用することができますし、表記$userCountにのみ、二重引用符で囲まれた文字列に評価されます

task writeUsersFile << { 
    t_userCount = project.hasProperty('userCount') ? userCount : 0 
    outputFile.withWriter { out -> 
    1.upto(t_userCount) { 
     out.println(String.format(userNameFmt, it, testPassword)) 
    } 
    } 
}