Я получаю массу ошибок «разделить пакет», когда я ввожу модули 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?
spring-boot
выпустить артефакт с модульным кодом.... хотелось бы увидеть работающий пример , похоже, это скорее краткий обзор, для которого я считаю, что SO не является подходящим местом. - person Naman   schedule 17.10.2017