java - Maven 多模块库构建
问题描述
我正在使用 Maven 系统开发库,该库发布在 Nexus 存储库中。在 nexus(以及 maven 构建)中,该项目产生最终jar
命名<projectName>-<version>.jar
- 这正是我想要的。
现在,我决定将库拆分为 maven 模块,因此顶级pom.xml
有<packaging>pom</packaging>
. 该构建也不会产生 final <projectName>-<version>.jar
,而是<moduleName>-<version>.jar
为每个模块产生。
我想要实现的是将项目拆分为模块并能够生成最终<projectName>-<version>.jar
包含定义的模块。这可能吗?迁移到 Gradle 是否可以解决此问题?
解决方案
当您决定将库拆分为多个模块时,这意味着您决定独立构建它们。因此,预计每个模块都会创建自己的<moduleName>-<version>.jar
.
现在,当您使用创建的模块时,具有mavendependencies
范围的更大模块会自动将它们添加到项目中。compile
lib
因此,在您的情况下,您无需更改打包pom
,只需将模块作为依赖项添加到pom.xml
文件中,然后让 maven 为您创建最终的 jar。
此外,如果您想使用pom
包装,这里有一个很好的问题可能会对您有所帮助。
推荐阅读
- regex - pycharm 正则表达式替换字符串并保留原始匹配的字符串
- java - Java 包含多个库,在运行时决定使用哪一个?
- ios - PopToRootViewController 在底部显示黑条
- flutter - Flutter Navigator 未推入堆栈
- c# - 有没有办法通过索引从流文档中检索单个块?
- spring-boot - 由其他自定义授权服务器(SpringBoot2 和 OAuth2)进行身份验证时,OAuth2 客户端主体没有 GrantedAuthorities
- javascript - 为什么这要求方案不能按预期工作?
- jquery - 带有jquery的循环函数类名
- forms - 在编辑另一个文本字段 vue.js 时获取计算属性并传递其值
- javascript - D3更改选择/附加svg的顺序