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
包装,有一个很好的问题 可能会对您有所帮助。
我正在使用 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
包装,有一个很好的问题