JHipster Spring Boot модульный сплит-пакет - PullRequest
0 голосов
/ 11 июня 2018

Я пытаюсь модулировать приложение JHipster 5 (Spring Boot 2) и столкнулся с проблемой разделения пакета.

В module-info.java у меня есть следующие конфликтующие автоматические модули:

requires problem.spring.web;
requires problem;
requires jackson.datatype.problem;

Когда я собираю проект с Maven, я получаю несколько ошибок из-за конфликтующего имени пакета org.zalando.problem, например:

error: the unnamed module reads package org.zalando.problem from both problem and jackson.datatype.problem
error: module problem.spring.web reads package org.zalando.problem from both jackson.datatype.problem and problem

Я хотел бы знать, как решить эту проблему.Должен ли я ждать, чтобы сторонняя библиотека тоже была модульной?Как можно было бы разрешить этот конфликт?

В этой статье объясняется, как решить проблемы Split Packages.Я применил его, чтобы решить разделить пакет между jsr305 и java.xml.ws.annotation, используя аргумент --patch-module при сборке, как объяснено здесь .Однако проект не скомпилировался, когда я попробовал то же самое для этих пакетов.

Исходный код этого проекта доступен на GitHub

1 Ответ

0 голосов
/ 17 июня 2018

Если вы хотите использовать JAR-файлы, разделяющие пакет как модули, --patch-module - единственный способ, но трудный.Помимо исправлений, вам также необходимо создать остальную часть графика модуля.Допустим, вы обновляете модуль мегакорп с содержанием start.up , затем:

  • вы должны сделать мегакорп прочитаннымДля всех start.up зависимостей с --add-reads
  • необходимо сделать все модули, которые используют start.up read megacorp с--add-reads
  • вы должны убедиться, что start.up не находится на пути к модулю

Это может быть довольно сложно, особенно если вы сражаетесьМэйвен по пути.Вы уверены, что просто невозможно объединить два артефакта?

Если нет, я бы сказал, что этот проект не готов к модульности.

...