Spring Boot 2 не может видеть модуль JDK 9 во время выполнения с помощью ServiceLoader - PullRequest
0 голосов
/ 21 сентября 2018

В одной многопроектной сборке у меня есть следующие модули.user-api, предоставляющий интерфейс user-impl, который реализует этот интерфейс.У меня также есть третий модуль сети, который должен использовать службу, определенную в user-impl.Вот соответствующие фрагменты из build.gradle для веб-проекта:

apply plugin: 'java'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: "org.gradle.java.experimental-jigsaw"

dependencies {
    implementation group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.0'
    implementation group: 'io.reactivex.rxjava2', name: 'rxjava', version: '2.1.16'
    implementation group: 'io.projectreactor.addons', name: 'reactor-adapter'
    implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.8'
    implementation('org.springframework.boot:spring-boot-starter-webflux')

    implementation project(":user:api")
    runtimeOnly project(":user:impl")
}

Когда я запускаю проект из Intellij, он работает нормально, я вижу, что моя реализация сервиса была найдена с использованием ServiceLoader.Однако при попытке запустить приложение из gradle с помощью bootRun я не вижу своей реализации сервиса.Я создал другой тестовый проект, который является простым java-приложением, и в этом случае я могу обнаружить свою реализацию, используя загрузчик сервисов.Я подозреваю, что проблема каким-то образом связана с банкой с толстой пружиной, но я не совсем понимаю, что является причиной проблемы?Какие-либо предложения?Java версия 18.3 (сборка 10.0.2 + 13), Gradle 4.10.1

...