2014-11-08 52 views
0

我試圖將戰爭檔案部署到Tomcat中。這裏是我寫的構建腳本:如何在gradle中複製文件?

apply plugin : 'war' 

task deploy (dependsOn: war){ 
    copy { 
     from "build/libs" 
     into "E:/apache-tomcat-8.0.14/webapps" 
     include "*.war" 
    } 
} 

但它沒有效果。 webapps的根目錄中沒有war。 Gradle輸出:

:compileJava UP-TO-DATE 
:processResources UP-TO-DATE 
:classes UP-TO-DATE 
:war 
:deploy 

怎麼了?

請不要爲我提供任何tomcat-cargo插件。我只想知道如何解決特定的文件複製任務。

回答

5

您的任務中的代碼在配置階段運行,而不是在執行階段運行。因此它在戰爭任務完成之前運行。該任務應該像

task deploy (dependsOn: war) << { 
    ... 
} 

task deploy (dependsOn: war) { 
    doLast { 
     ... 
    } 
} 

,或者甚至更好,而不是定義執行時做了副本的必要方式的任務時,你應該讓你的任務副本任務,並配置它:

task deploy (dependsOn: war, type: Copy) { 
    from "build/libs" 
    into "E:/apache-tomcat-8.0.14/webapps" 
    include "*.war" 
}