2014-06-18 4 views
3

내 프로젝트는 표준 규칙 (src/main, src/test ..)을 따르는 자바 프로젝트입니다. 단지 테스트 클래스 및 종속성을 포함하는 항아리가 필요다른 구성의 종속성 추가

  • 내 응용 프로그램 코드를 포함 Gradle을 방출

    • "기본"항아리 : 나는 두 개의 jar 파일을 방출하는 간단한 Gradle을 작업을 쓰기 위해 노력하고있어 그들을 실행 (예 : Junit). 이 jar에는 비 테스트 코드 (예 : 아래 예의 구아바)에서만 필요한 종속성이 없어야합니다.

    아래의 testJar 작업에서 "testCompile"을 사용하려고했지만 테스트 Jar 이외의 것을 선택합니다. 그래서 테스트 종속성을 나열한 별도의 구성을 만들었지 만 'testCompile'구성이 올바르게 채워지지 않아 테스트를 컴파일 할 수 없기를 기대합니다.

    Gradle에 대한 제한된 지식으로 종속성 블록에서 DSL을 정의하는 DependencyHandler API에서 한 구성을 다른 구성에 할당하는 방법을 보지 못했습니다. 어떻게 testJars 종속성을 testCompile 세트 (바꾸지 않음)로 설정하여 모든 것을 "작동"시킬 수 있습니까? 누락 된 간격이 있다고 가정하는 아래 코드에 주석을 달았지만 잘못된 것일 수 있습니다!

    configurations { 
        testJars 
        testCompile { 
         extendsFrom testJars 
        } 
    } 
    

    testCompile을 증가합니다 어떤 : 사용자 정의 testJars 구성을 가정

    apply plugin: 'java' 
    
    sourceCompatibility = 1.7 
    targetCompatibility = 1.7 
    
    repositories { 
        mavenCentral() 
    } 
    
    configurations { 
        testJars 
    } 
    
    dependencies { 
        compile group: 'com.google.guava', name: 'guava', version: '14.0.1' 
        testJars group: 'junit', name: 'junit', version: '4.+' 
        //"testCompile append testJars"?? 
    } 
    
    task testJar(type: Jar) { 
        classifier = 'tests' 
        from sourceSets.test.output 
        from { configurations.testJars.collect { it.isDirectory() ? it : zipTree(it) } } 
    } 
    
  • +1

    정확히 무엇을 하려는지 확실하지 않지만 이것을 'configurations' 블록에 추가하면됩니다.'testCompile {extendsFrom testJars}' – superEb

    답변

    2

    내장 testCompile 구성이에 configurations 블록을 변경할 수 있어야의 부분 집합을 의미한다 testJars에있는 모든 것을 포함하십시오. 필자는 테스트 코드를 컴파일하는 데 필요한 클래스 경로를 제공한다고 생각합니다.