Многопроектные тестовые зависимости с Gradle - PullRequest
124 голосов
/ 13 апреля 2011

У меня есть многопроектная конфигурация, и я хочу использовать gradle.

Мои проекты такие:

  • Проект A

    • -> src/main/java
    • -> src/test/java
  • Проект B

    • -> src/main/java (зависит от src/main/java от проекта A )
    • -> src/test/java (зависит от src/test/java от проекта A )

Мой Проект B build.gradle Файл выглядит следующим образом:

apply plugin: 'java'
dependencies {
  compile project(':ProjectA')
}

Задача compileJava отлично работает, но compileTestJava не компилирует тестфайл из проекта A .

Ответы [ 12 ]

1 голос
/ 12 февраля 2019

Если вы хотите использовать артефакт зависимости, чтобы иметь:

  • Исходные классы ProjectB зависят от исходных классов Project A
  • Тестовые классы ProjectB зависят от тестовых классов Project A

тогда раздел зависимостей ProjectB в build.gradle должен выглядеть примерно так:

dependencies {

  compile("com.example:projecta:1.0.0")

  testCompile("com.example:projecta:1.0.0:tests")

}

Чтобы это работало, ProjectA необходимо построить -tests jar и включить его в артефакты, которые он производит.

ProjectA build.gradle должен содержать такую ​​конфигурацию:

task testsJar(type: Jar, dependsOn: testClasses) {
    classifier = 'tests'
    from sourceSets.test.output
}

configurations {
    tests
}

artifacts {
    tests testsJar
    archives testsJar
}

jar.finalizedBy(testsJar)

Когда артефакты ProjectA будут опубликованы в вашей артефакте, они будут включать -признаки банку.

testCompile в разделе зависимостей ProjectB принесет классы в -tests jar.


Если вы хотите includeFlat Исходный и тестовый классы ProjectA в ProjectB для целей разработки, тогда раздел зависимостей в build.gradle ProjectB будет выглядеть следующим образом:

dependencies {

  compile project(':projecta')

  testCompile project(path: ':projecta', configuration: 'tests')

}
0 голосов
/ 07 августа 2013

в проекте B:

dependencies {
  testCompile project(':projectA').sourceSets.test.output
}

Кажется, работает в 1.7-rc-2

...