В Gradle, как скопировать подмножество скомпилированных тестовых классов - PullRequest
0 голосов
/ 09 мая 2020

Я попытался взять часть скомпилированных тестовых классов проекта Gradle и поместить их в файл jar (для создания тестового примера). Произошло то, что из всех тестовых классов были скомпилированы только эти классы. Есть идеи, как это сделать правильно?

Вот мой build.gradle:

plugins {
id 'java'
}

group 'org.example'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

task testSampleJar(type: Zip) {
    archiveName "sample.jar"
    from compileTestJava {
        include "org/example/samples/**"
    }
}

test {
    dependsOn(testSampleJar)
}

Итак, похоже, что происходит, просто определяя задачу testSampleJar, compileTestJava задача модифицируется для компиляции только в пакете org.example.samples. Я намеревался использовать результаты compileTestJava и выбрать что-нибудь из них.

Спасибо, Ури

1 Ответ

0 голосов
/ 09 мая 2020

Хорошо, разобрался, поэтому есть два возможных решения:

//a global filter
task testSampleJar(type: Zip) {
    archiveName "sample.jar"
    from compileTestJava
    include "org/example/samples/**"
}

или

//Child specification - notice the parentheses around compileTestJava
task testSampleJar(type: Zip) {
    archiveName "sample.jar"
    from (compileTestJava) {
        include "org/example/samples/**"
    }
}

Я думаю, исходный код определял compileTest Java вместо использования его вывод, но у меня нет полной asp Groovy / Gradle DSL, чтобы быть уверенным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...