Это должно быть что-то довольно очевидное, но по какой-то причине я скучаю по нему после нескольких часов очень внимательного рассмотрения ..
Я строю многомодульный проект Spring Boot, следуя гексагональной архитектуре. с Gradle 5.1.1, поэтому у меня есть несколько таких адаптеров, как этот rest-adapter
, для которых файл gradle.build
находится ниже:
import org.springframework.boot.gradle.plugin.SpringBootPlugin
apply plugin: 'java-library'
apply plugin: 'io.spring.dependency-management'
dependencyManagement {
imports {
mavenBom SpringBootPlugin.BOM_COORDINATES
}
}
dependencies {
implementation project(':domain-api')
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
Я могу собрать его, без проблем.
В другой модуль, я хочу иметь зависимость от этого адаптера. Так, например, в моем модуле acceptance-test
:
import org.springframework.boot.gradle.plugin.SpringBootPlugin
apply plugin: 'java'
apply plugin: 'io.spring.dependency-management'
dependencyManagement {
imports {
mavenBom SpringBootPlugin.BOM_COORDINATES
}
}
dependencies {
implementation project(':domain')
implementation project(':domain-api')
implementation project(':rest-adapter')
}
Так в acceptance-test
, поскольку у меня есть зависимость от rest-adapter
, я ожидал бы получить доступные зависимости "пружинной сети" - хорошо Я не могу, так как я не могу использовать org.springframework.http.HttpStatus
:
Задача: приемочный тест: компиляция Java FAILED
C: \ Users \ vf \ IdeaProjects \ hexagonal-spring-boot-java \ accept-test \ src \ main \ java \ packageName \ MyClass. java: 3: ошибка: пакет org.springframework.http не существует import org.springframework.http. HttpStatus; ^
У меня было сомнение, что это было связано с тем, что я использовал стартер Spring Boot в качестве зависимости, поэтому я попробовал это в rest-adapter
вместо:
dependencies {
implementation project(':domain-api')
implementation group: 'org.springframework', name: 'spring-web'
compile "javax.servlet:javax.servlet-api:4.0.1"
//implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
Но я получаю тот же результат.
Здесь я действительно ничего не понимаю ... Я не первый раз делаю многоузловой проект Gradle с Spring Boot, и даже когда я сравниваю с другими моими проектами Я не вижу никакой разницы.
Есть идеи, что может go здесь не так?