2014-01-15 1 views
5

나는 여러 프로젝트 스크립트가 :Gradle : 다중 프로젝트 스크립트에서 다른 프로젝트의 폴더를 복사하려면 어떻게해야합니까?

나는 현재 프로젝트의 폴더에 컴포넌트 1 및 컴포넌트 2에서 "빈"폴더 "빈"을 복사해야
dependencies { 
    compile '...' 
    ... 

    compile project(':component1') 
    runtime project(':component2') 
} 

.

업데이트 : Eclipse에서 "Run as"-> "Run on Server"를 수행하려면이 기능이 필요합니다. 각 프로젝트에는 Java 코드와 웹 UI 파일이 있으며 작업 영역의 다른 프로젝트에 의존합니다. "배포 어셈블리"에서는 다른 프로젝트에서 컴파일 된 클래스를 복사 할 수 없습니다.

+0

Gradle을 복사 작업이 있습니다. 구성하고 빌드 프로세스에 연결하십시오. –

+0

구성 - 방법? – isobretatel

+0

이 자바 프로젝트입니까? –

답변

7

폴더를 완전히 복사해야한다는 점을 이해하지 못합니다.

하지만, 여기에 사용자 정의 복사 작업 :

task copyBin(type: Copy) { 
    from project(':component1').file('bin') 
    into file('bin') 
} 

그리고 빌드 프로세스에 후크 :

jar.dependsOn copyBin 
+0

복사 작업의 종속성을 하드 코딩하지 않으려는 경우 "종속성"에 이미 정의되어 있습니다. 트릭은 : 복사 작업의 종속성을 루프하는 법입니다. 작업 copyProjectDependenciesToBinFolder (유형 : 복사) - – isobretatel

+0

또한 가능하다 http://forums.gradle.org/gradle/topics/how_to_iterate_over_dependencies_that_have_type_project –

+0

나는 다음을 시도 { FileCollection의 binFoldersFromProjectDependencies =의 project.configurations .collectMany {it.allDependencies} .findAll는 {이 ProjectDependency instanceof를} .file ('빈') 파일 ('빈') } ,에 binFoldersFromProjectDependencies 에서 하지만 그것은 나에게 오류를 제공합니다 : 개체를 캐스팅 할 수 없습니다 '[]'클래스 'java.util의 .ArrayList 'to class'org.gradle.api.file.FileCollection ': groovy.lang.GroovyRuntimeException : 일치하는 생성자를 찾을 수 없습니다 : org.gradle.api.file.FileCollection() – isobretatel

관련 문제