«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как разрешить тестовые зависимости в многопроектных конфигурациях Gradle?

Как разрешить тестовые зависимости в многопроектных конфигурациях Gradle?

Опубликовано 8 ноября 2024 г.
Просматривать:183

How to Resolve Test Dependencies in Multi-Project Gradle Configurations?

Разрешение зависимостей тестов в многопроектных конфигурациях Gradle

При работе с многопроектными сборками в 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