Maven 多模块库构建

Maven multimodule library build

我正在使用 Maven 系统开发库,该库已发布在 Nexus 存储库中。 在 Nexus(以及 Maven 构建)中,该项目生成名为 <projectName>-<version>.jar 的最终 jar - 这正是我想要的。

现在,我决定将库拆分为 Maven 模块,因此顶层 pom.xml<packaging>pom</packaging>。该构建也不生成最终的 <projectName>-<version>.jar,而是为每个模块生成 <moduleName>-<version>.jar

我想要实现的是将项目拆分为模块,并能够生成包含已定义模块的最终 <projectName>-<version>.jar。这可能吗? 迁移到 Gradle 是否可以解决此问题?

当您决定将库拆分为多个模块时,这意味着您决定独立构建它们。所以预计每个模块都会创建自己的 <moduleName>-<version>.jar.

现在,当您将创建的模块用作范围为 compile 的更大模块的 dependencies 时,maven 会自动将它们添加到项目的 lib 中。

因此,在您的情况下,您不需要将包装更改为 pom,只需将模块作为依赖项添加到 pom.xml 文件中,然后让 maven 为您创建最终的 jar。

此外,如果您想使用 pom 包装,有一个很好的问题 可能会对您有所帮助。