При работе с многопроектными сборками в Gradle важно установить эффективные зависимости между тестовым кодом между проектами. Рассмотрим сценарий, в котором существуют проекты A и Project B, причем проект B опирается на компоненты из проекта A.
В этой ситуации build.gradle для проекта B может выглядеть следующим образом. :
apply plugin: 'java'
dependencies {
compile project(':ProjectA')
}
Однако задаче compileTestJava не удалось скомпилировать тестовый код из проекта A. Это указывает на пробел в конфигурации, необходимой для доступа к зависимостям теста из другого проекта.
Чтобы решить эту проблему, build.gradle проекта B можно обновить с помощью зависимости testCompile:
dependencies {
...
testCompile project(':A').sourceSets.test.output
}
Эта новая зависимость гарантирует, что тестовый код проекта B имеет доступ к скомпилированным тестовым классам из проекта A. Используя sourceSets.test.output, Gradle разрешает выходной каталог, в котором тестовые классы размещаются во время сборки.
Эта конфигурация успешно протестирована с Gradle 1.7. Обратите внимание, что для версий Gradle 5.6 и выше требуется другое решение, которое документируется отдельно.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3