2012-08-03 4 views
3

내 Gradle 빌드에서 파일을 원격 호스트에 복사하기위한 재사용 가능한 기능을 정의하려고합니다. 함수 내에서 scp Ant 태스크를 사용하려고합니다. 아래 코드는 작동합니다 :함수를 통해 파일 세트를 Gradle Ant 태스크에 전달하는 방법은 무엇입니까?

그러나 remoteCopy 기능 내에서 파일 세트를 하드 코딩하고 싶지는 않습니다. (이 구문이 가능한 경우)이 같은 기능 뭔가를 호출 할 수 있도록하려면 :

remoteCopy('[email protected]:/home/xxxxxxx/') { 
    ant.fileset(dir: 'config') { 
     include(name: '**/*.txt') 
    } 
} 

아니면 두 번째 매개 변수로 :

remoteCopy('[email protected]:/home/xxxxxxx/', 
    ant.fileset(dir: 'config') { include(name: '**/*.txt') }) 

수 멋져요 및/또는 Gradle을을 아는 사람 도움?

configurations { ant_jsch } 

repositories { mavenCentral() } 

dependencies { ant_jsch 'org.apache.ant:ant-jsch:1.8.1' } 

ant.taskdef(name: 'scp', 
    classname: 'org.apache.tools.ant.taskdefs.optional.ssh.Scp', 
    classpath: configurations.ant_jsch.asPath) 

답변

4

이 일을합니까 : 내 Gradle을 스크립트 내에서 scp 개미 작업을 초기화하고 어떻게

완성도를 위해서

이는, 쉽게 재현 할 수 있도록?

def remoteCopy(todir, Closure fset) { 
    ant.scp(todir: todir, passphrase: XXXXXXXX, keyfile: XXXXXXXX) { 
    fset() 
    } 
} 

remoteCopy('[email protected]:/home/xxxxxxx/') { 
    ant.fileset(dir: 'config') { 
    include(name: '**/*.txt') 
    } 
} 
관련 문제