2017-04-04 55 views
0

我有一個Gradle複製任務設置來發布未修改的JAR文件以進行測試和調試,如何修改複製任務的執行屬性?

任務定義:

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

其中一期工程,把一個JAR文件到一個目錄。真正需要的是將JAR放入「dist/」下的一個或多個不同的文件夾中。

以下很多試驗(和錯誤)我發現這個版本爲我工作。

調用複製任務:

// 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 ......謝謝,是的,我今天下午看到了。這確實是一個非常小的問題。主要目標是操縱/編輯**'到'**屬性。 – 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 
} 
相關問題