首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >异步级复制任务?

异步级复制任务?
EN

Stack Overflow用户
提问于 2016-08-11 20:14:59
回答 2查看 2.2K关注 0票数 5

所以我创建了一个档案,比如说一个war,然后为了方便,我想要另一个名字不同的副本。问题是,我不希望复制任务减缓这个相当大的构建的其余部分。有可能异步执行吗?如果是这样的话,是怎么做的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-19 18:20:44

代码语言:javascript
复制
import java.util.concurrent.*
...
def es = Executors.newSingleThreadExecutor()
...
war {
...
doLast{
        es.submit({
            copy {
                from destinationDir.absolutePath + File.separator + "$archiveName"
                into destinationDir
                rename "${archiveName}", "${baseName}.${extension}"

            }
        } as Callable)
    }
}
票数 3
EN

Stack Overflow用户

发布于 2016-08-12 10:31:48

在某些情况下,使用并行执行特征进行此操作非常方便。它只适用于多项目构建(您希望并行执行的任务必须在单独的项目中执行)。

代码语言:javascript
复制
project('first') {
  task copyHugeFile(type: Copy) {
    from "path/to/huge/file"
    destinationDir buildDir
    doLast {
      println 'The file is copied'
    }
  }
}

project('second') {
  task printMessage1 << {
    println 'Message1'
  }

  task printMessage2 << {
    println 'Message2'
  }
}

task runAll {
  dependsOn ':first:copyHugeFile'
  dependsOn ':second:printMessage1'
  dependsOn ':second:printMessage2'
}

默认输出:

代码语言:javascript
复制
$ gradle runAll

:first:copyHugeFile
The file is copied
:second:printMessage1
Message1
:second:printMessage2
Message2
:runAll

--parallel输出

代码语言:javascript
复制
$ gradle runAll --parallel

Parallel execution is an incubating feature.
:first:copyHugeFile
:second:printMessage1
Message1
:second:printMessage2
Message2
The file is copied
:runAll
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38905329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档