Есть ли способ указать зависимости для вновь созданного набора исходных кодов в Gradle? - PullRequest
3 голосов
/ 09 января 2012

В Gradle я создал новый sourceSet для сервисного тестирования, например:

sourceSets{
    servicetest{
        java.srcDirs = [//path to servicetests]
    }
}

Этот исходный набор зависит от TestNG, поэтому я надеялся уменьшить зависимость, выполнив что-то вроде:

dependencies{
    servicetest(group: 'org.testng', name: 'testng', version: '5.8', classifier: 'jdk15')
}

К сожалению, это возвращает ошибку. Есть ли способ объявить зависимость для конкретного sourceSet или мне не повезло?

Ответы [ 2 ]

4 голосов
/ 09 января 2012

Последние версии Gradle автоматически создают и связывают конфигурации «fooCompile» и «fooRuntime» для каждого исходного набора «foo».

Если вы все еще используете более старую версию, вы можете объявить свою собственную конфигурацию и добавить ее в compileClasspath или runtimeClasspath исходного набора. Что-то вроде:

configurations {
    serviceTestCompile
}

sourceSets {
    serviceTest {
        compileClasspath = configurations.serviceTestCompile
    }
}

dependencies {
    serviceTestCompile "org.testng:testng:5.8"
}
2 голосов
/ 28 мая 2013

Следующие работы для Gradle 1.4.

apply plugin: 'java'

sourceCompatibility = JavaVersion.VERSION_1_6

sourceSets {
    serviceTest {
        java {
            srcDir 'src/servicetest/java'
        }
        resources {
            srcDir 'src/servicetest/resources'
        }
        compileClasspath += sourceSets.main.runtimeClasspath
    }
}

dependencies {
    compile(group: 'org.springframework', name: 'spring', version: '3.0.7')

    serviceTestCompile(group: 'org.springframework', name: 'spring-test', version: '3.0.7.RELEASE')
    serviceTestCompile(group: 'org.testng', name:'testng', version:'6.8.5')
}


task serviceTest(type: Test) {
    description = "Runs TestNG Service Tests"
    group = "Verification"
    useTestNG()
    testClassesDir = sourceSets.serviceTest.output.classesDir
    classpath += sourceSets.serviceTest.runtimeClasspath
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...