Ошибки разделенного пакета Java 9 в Spring Boot

Я получаю массу ошибок «разделить пакет», когда я ввожу модули java 9 в свой код SpringBoot. Они повсюду, например:

Error:java: the unnamed module reads package org.bson.types from both bson and mongodb.driver
Error:java: the unnamed module reads package org.bson.io from both bson and mongodb.driver
Error:java: the unnamed module reads package org.bson from both bson and mongodb.driver
Error:java: the unnamed module reads package com.mongodb.client.model from both mongodb.driver.core and mongodb.driver
Error:java: the unnamed module reads package com.mongodb.client from both mongodb.driver.core and mongodb.driver
Error:java: the unnamed module reads package com.mongodb from both mongodb.driver.core and mongodb.driver
Error:java: the unnamed module reads package org.aopalliance.aop from both aopalliance.repackaged and spring.aop
...

Я пробовал много разных выпусков, включая 1.5.3.RELEASE, 2.0.0.M5 и 2.0.0.BUILD-SNAPSHOT.

Проблемы возникают, когда maven берет все зависимости и добавляет их как «автоматические модули» в путь к модулю. Многие зависимости имеют дублированные пакеты, что не разрешено в java 9. Примером плохой зависимости является spring.aop:5.0.1.BUILD-SNAPSHOT, которая, очевидно, упаковывает org.aopalliance.aop.

Именно SpringBoot определяет все зависимости. Я даже пытался использовать ванильный проект из Spring Initializr, добавив только:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jersey</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

Кроме того, я добавил module-info.java, чтобы сделать демонстрационный код совместимым с java 9:

├── src
│   ├── main
│   │   ├── java
│   │   │   ├── com
│   │   │   │   └── example
│   │   │   │       └── demo
│   │   │   │           └── DemoApplication.java
│   │   │   └── module-info.java
│

Это не компилируется.

Вопрос: есть ли у кого-нибудь рабочий пример проекта SpringBoot, где код организован в модули java 9?


person Christian von Wendt-Jensen    schedule 16.10.2017    source источник
comment
Возможный дубликат модуля java 9 читает пакет X из A и B... и ответить на интересный вопрос там - Нет, это не только вы :) ++ Не задавайте слишком много несвязанных вопросов в одном. Взгляните на это также с автоматическими модулями в java 9"> stackoverflow.com/questions/42358084/, на основе градиента, но общего ответа.   -  person Naman    schedule 16.10.2017
comment
Спасибо за ваш совет по нескольким вопросам и ссылку на другой пост. К сожалению, я не могу использовать это решение, потому что проблема разделения пакетов существует во многих местах, включая собственные артефакты SpringBoots. Я думаю, что команда SpringBoot должна решить эту проблему и придумать руководство по решению этой проблемы. Но хотелось бы увидеть рабочий пример.   -  person Christian von Wendt-Jensen    schedule 17.10.2017
comment
В этом случае вы должны дождаться восходящего подхода и позволить spring-boot выпустить артефакт с модульным кодом.... хотелось бы увидеть работающий пример , похоже, это скорее краткий обзор, для которого я считаю, что SO не является подходящим местом.   -  person Naman    schedule 17.10.2017
comment
Если это так, то SpringBoot не готов, пусть будет так. Но меня смутило состояние SpringBoot, и поэтому я обращаюсь к сообществу SO. Ничего общего со скрытым просмотром :-)   -  person Christian von Wendt-Jensen    schedule 17.10.2017