从 Maven 多项目设置发布单个项目

问题描述

我有一个 maven 多项目设置,其中一个项目代表“客户端 API”。与服务交互的其他应用程序/项目应包括客户端 API 作为依赖项。

客户端 API 的 pom.xml 引用了父 pom,从那里继承了一些依赖项。因此,此客户端 API 的使用者目前还需要访问此父 pom(因此也需要发布)。

这正常吗(“它应该是这样”)?或者这是可以避免的?是否可以将客户端 API 作为独立包发布?

解决方法

如果您使用作为多模块构建一部分的工件,那么使用者也必须使用该工件的父项。

继承依赖是否正确的问题(另一个讨论)。

如果您想防止使用父项,您必须拆分项目并为您的 API 创建一个单独的项目。但通常一个单独的项目通常也有一个父级(公司;一般父级等)。

另一方面,我不建议这样做,因为如果 api 在您的项目中,它也会被使用和维护......这使得重构更容易。