将项目分成两个独立项目有什么意义?

Gar*_*ett 5 java

很多时候,我看到人们将项目分成两个独立的项目,如此屏幕截图所示:

在此输入图像描述

分离Ingot和IngotAPI而不是将它们放在同一个项目中有什么意义,因为它们总是被编译在一起?

Joo*_*gen 1

几个案例。

需要或希望将 API与其(之一)实现分离。使用Java SPI(服务提供者接口),您只需提供一个客户端应用程序所针对的接口。然后,java SPI 提供查找以使用可能的实现之一。用于 XML 解析器。与 JDBC 类似。解耦API意味着如果API保持不变但实现发生了变化,则客户端不需要重新编译。

一般来说,拥有多个项目可以将每个项目视为一个模块,一个导入指定列表的其他模块并形成分层结构的单元。这可以给软件系统带来更高的质量,无需来回导入。下一代java将获得模块。