0

我的 build.gradle 文件中有以下代码:

task untarServer(type:Copy) {
    from tarTree('build/libs/server.tar.gz')
    into project.ext.tomcat + '../'
} << {
    println 'Unpacked, waiting for tomcat to deploy wars ...'
    sleep 10000
}

task deploy << {
    tarball.execute()
    untarServer.execute()
    stopTomcat.execute()
    startTomcat.execute()
}

一切都很好,除了 untarServer,它似乎根本没有运行。Untar 基于文档中的一个示例。可能由于时间较晚,我做了一些愚蠢的事情,但我错过了。我怎样才能解决这个问题?在我的脑海里,我可以直接使用 ant.untar,但如果可能的话,我想用原生的 gradle 方式来做。

编辑:我怎么知道它没有运行?因为 println 语句永远不会出现,所以 buld 不会暂停 10 秒,并且 tarball 的内容不会出现在“into”位置。

4

1 回答 1

0

我以前没见过} << {语法;我会将其更改为doLast { ... }大括号内或untarServer << {(作为单独的声明)。此外,您永远不应该调用execute()任务。这是完全不受支持的,而且会发生不好的事情。相反,您应该建立一个任务关系(dependsOn, mustRunAfter, finalizedBy)。

于 2013-08-15T04:49:31.573 回答