JHipster Spring Boot模块化拆分包

时间:2018-06-11 16:07:57

标签: maven spring-boot jhipster java-9 module-info

我正在尝试模块化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

我想知道如何解决这个问题。我是否还要等待第三方库模块化?什么是解决这场冲突的好方法?

This article解释了如何解决Split Packages问题。我按照here的说明,在构建时使用jsr305参数解决了java.xml.ws.annotation--patch-module之间的拆分包。但是当我为这些包尝试相同时,项目没有编译。

此项目的来源可在GitHub

上找到

1 个答案:

答案 0 :(得分:0)

如果您想使用将包拆分为模块的JAR,--patch-module是唯一的方法,但这是一个艰难的方法。除了修补之外,您还需要制作模块图的其余部分。假设您使用 start.up 的内容修补模块 megacorp ,然后:

  • 你必须让 megacorp 使用--add-reads
  • 读取所有 start.up 的依赖项
  • 您必须使用 start.up 的所有模块使用--add-reads
  • 读取 megacorp
  • 您必须确保 start.up 不在模块路径上

这可能非常复杂,特别是如果你在途中与Maven战斗。你确定,没有办法简单地合并两个工件吗?

如果没有,我会说这个项目可能还没有为模块化做好准备。