2017-04-04 10 views
0

私はテストとデバッグのための装飾されていないJARファイルを公開するためのセットアップをしています。実行時にコピータスクのプロパティを変更するにはどうすればよいですか?

タスクの定義:

task copyJarToStaging(type: Copy) { 
    from jar // shortcut for createJar.outputs.files 
    into ("${rootProject.rootDir}/dist/") 
    rename('-.*\\.jar', ".jar") 
} 

一つのディレクトリにJARファイルを置くために、働きます。本当に必要なのは、 "dist/"の下の1つ以上の異なるフォルダにJARをドロップすることです。

多くの試行(およびエラー)に続いて、私はこのバージョンが私のために働いていることがわかりました。

// build.gradle (module) 

assemble.dependsOn copyJarToStaging { 
    println "into ==> ${destinationDir}/support" 
    into "${destinationDir}/support/" 
} 

しかし、それは本当に香り権利を行います。

はコピータスクを起動します。

もっとクリーンな方法がありますか?私はちょうどintoアトリビュートに追加するだけでクロージャが好きだったでしょうが、それは行っていませんでした。

同じファイルを別の場所に置いておきたい場合は、into文字列とそれぞれの値をyieldのように入力するとよいでしょう。

その一部または全部は可能ですか?または、私は夢を見ているのですか?通常

+0

http://stackoverflow.com/questions/13467498/how-to-copy-to-multiple-destinations-with-gradle-copy-task –

+0

@tim_yates ...ありがとう、はい、今日の午後を見た。それは本当に非常に小さな問題です。主な目的は、** 'into' **属性を操作/編集することです。 – will

答えて

1

あなたが複数のコピータスクを作成したい

['dev', 'staging', 'uat', 'prod'].each { String dir -> 
    Task task = tasks.create("copyJarTo${dir.capitalize()}", type: Copy) { 
     from jar 
     into "dist/$dir" 
    } 
    assemble.dependsOn task 
} 
関連する問題