2014-11-08 3 views
0

Tomcat에 war 아카이브를 배포하려고합니다. 다음은 작성한 빌드 스크립트입니다.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 

무엇이 잘못 되었습니까?

저에게 바람둥이화물 플러그인을 제안하지 마십시오. 그 특정 파일 복사 작업을 수정하는 방법을 알고 싶습니다.

답변

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" 
} 
관련 문제