В основном у меня есть сборка проекта весенней загрузки с Gradle. У проекта есть корневой проект, который содержит еще 4 подмодуля. Корневой проект settings.gradle выглядит так:
rootProject.name = 'proj'
include 'proj-app'
include 'proj-integration-tests'
include 'proj-model'
include 'proj-service'
Модуль приложения содержит плагин spring-boot-gradle и предоставляет некоторые API.
Я хотел создать подмодуль proj-integration-tests, содержащий только интеграционные тесты. Проблема начинается здесь, так как мне нужна зависимость от proj-app.
Итак, в proj-integration-tests у меня есть build.gradle, который содержит:
dependencies {
testCompile('org.springframework.boot:spring-boot-starter-web')
testCompile('org.springframework.boot:spring-boot-starter-test')
testCompile project(':proj-app')
testCompile project(':proj-model')
}
и мне нужна была зависимость proj-app с момента интеграционного теста:
@RunWith(SpringRunner.class)
@SpringBootTest(classes = ProjApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
требуется запуск приложения загрузки Spring (ProjApplication.class), которое находится в модуле proj-app.
Ошибка, которую я получил от Gradle: «не удается найти символ ProjApplication».
Почему Gradle не мог правильно управлять зависимостью proj-app? Заранее спасибо ;)
ProjApplication
находится в упаковке? И я предполагаю, что ошибка, которую вы видите, связана с компиляцией интеграционных тестов, верно? ЛибоProjApplication
находится в пакете по умолчанию, что означает, что он не виден для классов в пакете, либо JAR приложения не добавляется в конфигурациюarchives
. - person Peter Ledbrook   schedule 26.04.2018proj-app
? После этого вам не нужно ждать, пока приложение будет упаковано, прежде чем будут запущены интеграционные тесты. Хотя это зависит от характера интеграционных тестов. - person Peter Ledbrook   schedule 26.04.2018gradle test
в проекте интеграционного тестирования? Появляется ли зависимость проекта при запускеgradle :proj-integration-test:dependencies --configuration testCompileClasspath
? - person Peter Ledbrook   schedule 27.04.2018