2016-10-28 4 views
1

20種類のタスクを持つビルドスクリプトがあります。各タスクはいくつかのコマンドを実行し、各タスクはいくつかの環境変数を必要とします。いくつかの環境変数はすべてのタスクで共通ですが、いくつかの環境変数は共通ではありません。すべてのタスクの上にそれらの共通の環境変数を設定する方法はありますか?メソッド/タスクに環境変数を置き、それらの環境変数を必要とするタスク内で最初のステップとして呼び出すことができますか?グラブ内からenvirnonment変数を設定します。

task task1 (type:Exec) { 
     environment COMMON_ENV, VALUE1 
     commandLine 'touch', 'xyz100.txt' 
} 

task task2 (type:Exec) { 
     environment COMMON_ENV, VALUE1 
     commandLine 'touch', 'xyz200.txt' 
} 

この例では、task1とtask2の両方に同じ環境変数COMMON_ENVが必要です。ですから、どのように各タスクで定義するのではなく、共通の場所に定義することができますか。

Javaプロジェクトではないことを覚えておいてください。

次は、あなたが必要とするすべてが同じように、さらにそれらを設定することで、同じ型を持つすべてのタスクのためのいくつかの一般的なプロパティを設定することが可能であるすべてのタスク

task setEnv(type: Exec) { 
     environment COMMON_ENV, VALUE1 
} 
task task1 (type:Exec, dependsOn: setEnv) { 
     commandLine 'touch', 'xyz100.txt'//this task does not know COMMON_ENV, though it 'dependsOn' setEnv task 
} 

答えて

0

にENV変数を設定するために動作しません。そう:

tasks.withType(Exec) { 
    environment COMMON_ENV, VALUE1 
} 

task task1 (type:Exec) { 
     commandLine 'touch', 'xyz100.txt' 
} 

task task2 (type:Exec) { 
     commandLine 'touch', 'xyz200.txt' 
} 

注意、あなただけでなく、現在のプロジェクトを設定するには、allprojectsまたはsubprojects閉鎖にtasks.withType(Exec)を追加することができますが、すべてのプロジェクトまたはサブプロジェクトは、必要に応じて。

関連する問題