Maven - 依赖于多模块聚合器项目

2024-03-28

我有一个多模块 Maven 项目,其结构如下:

projectA-parent
  - module-1
  - module-2

我有另一个项目,我想将所有模块引入projectA-parent作为运行时依赖项(它是一个 Spring 应用程序,并且每个模块projectA-parent包含我希望能够自动装配的 Spring 服务)。

我想做的是

<dependency>
    <groupId>projectA-group</groupId>
    <artifactId>projectA-parent</artifactId>
    <scope>runtime</scope>
</dependency>

这样如果我添加另一个模块projectA-parent它会自动作为运行时依赖项引入(即,我不想在添加每个新模块时将它们添加为我的 Spring 应用程序中的依赖项)。这样的事可能吗?


你将不得不使用

<dependencies>
  <dependency>
     <groupId>projectA-parent-groupId</groupId>
     <artifactId>projectA-parent-artifactId</artifactId>
     <type>pom</type>
  </dependency>
</dependencies>

这会将 com.my:commons-deps 中声明的所有依赖项添加到当前的 POM 中。

Using

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>...</groupId>
            <artifactId>...</artifactId>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

作为依赖管理中工件版本的简单“包含”。因此,它不会在您的项目中添加任何依赖项。

UPDATE:

另一种方法是使用 BOM(物料清单)。检查这个link http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html用于使用BOM。它隐藏在底部的某个地方。

您可以创建一个 BOM,将所有模块列为依赖项,然后可以将 BOM 包含到 pom.xml 中,如下所示:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>your_bom_group_id</groupId>
            <artifactId>your_bom_artifact_id</artifactId>
            <version>you_bom_version</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Maven - 依赖于多模块聚合器项目 的相关文章

  • 使用当前用户的凭据进行 javamail NTLM 身份验证

    如何将 JavaMail API 与 NTLM 身份验证结合使用到 Exchange 服务器 而无需指定用户名和密码 而是自动使用当前登录用户的凭据 单点登录 我的目的是让我的客户端程序 在我公司网络中的 Windows 计算机上运行 能够
  • Ant 复制文件而不覆盖

    Is there any command in ant to copy files from one folder structure to another without checking the last modified date t
  • Java,ASM:如何从ASM InsnNode获取操作码名称和TagValue?

    我正在研究一些类文件分析 并且正在研究使用 ASM 来读取类 在 Javap 中 操作码以及 tagName 和 tagValue 是内联打印的 但在每个 AbstractInsnNode 中 我只看到 int 的字段 而不是 tagVal
  • 何时在 Springs @Configuration 中将 proxyBeanMethods 设置为 false?

    当查看 spring 自动配置时源代码 https github com spring projects spring boot tree master spring boot project spring boot autoconfigu
  • JTable 中的格式化字段问题 - Integer 和 Double 之间的差异

    更新 已确认为错误当 columnClass 为 Double 时 JTable 无法将给定对象格式化为 Number 错误 ID 7051636 https bugs java com bugdatabase view bug bug i
  • 如何缓解 Apache Log4j 反序列化 RCE (CVE-2019-17571)

    我已将 log4j core 依赖项升级到 2 15 0 以防止任何潜在的 Log4Shell 攻击 话虽如此 我无法从 1 2 17 升级 slf4j log4j12 的间接 log4j 依赖项 因为 slf4j log4j12 的最新稳
  • ANT - 如何使用 javac 排除、排除文件?

    查看了 stackoverflow 上的几篇文章以及其他来源 在线 ANT 定义指南 但到目前为止没有一个有帮助 我无法从编译中排除该文件 我只有一个文件想要从编译中排除 而 ANT 文档并没有真正说明细节 我试图排除HTMLParser
  • 比 O(n) 更好的范围交集算法?

    范围交集是一个简单但不平凡的问题 已经回答过两次了 查找数字范围交集 https stackoverflow com questions 224878 find number range intersection 比较日期范围 https
  • JUnit 测试 Spymemcached 客户端

    我有一个类围绕spymemcached 客户端 我想编写一些JUnit 测试来测试getValue 和addKey 方法是否有效 问题是无法从测试服务器访问spymemcached 服务器 所以我想这里需要一些模拟 我的简化类看起来像这样
  • 字符串文字的行为令人困惑

    下面的代码中字符串文字的行为非常令人困惑 我可以理解第 1 行 第 2 行和第 3 行是true 但为什么是第 4 行false 当我打印两者的哈希码时 它们是相同的 class Hello public static void main
  • java中使用[:punct:]函数的正则表达式

    我在用 punct 替换 a 中特殊字符的函数 字符串例如 REPLACE REGEXP REPLACE 第 1 列 punct 作为输出 作为java中SQL字符串的一部分 但我想要特定的特殊字符 不被替换 你能建议最好的方法吗 Acc
  • Hibernate 在更新集合时删除孤儿

    我发现从 Hibernate 中的集合中删除时 孤立记录不会被删除 我一定是做了一些简单的错误 这是 Hibernate 101 但我找不到它 鉴于以下情况 public class Book ManyToOne NotNull Autho
  • Spring数据异常处理

    我正在使用 Spring Data JPA 开发一个项目 我需要处理 JpaRepository 方法调用中的一些异常 在下面的代码中 我需要拦截主键违规错误 但无法直接捕获异常 就我而言 当发生此类异常时 存储库层 JpaReposito
  • 如何在 selenium Chrome 功能中设置默认下载目录?

    请查找以下具有 chrome 功能的代码 事实上浏览器并没有将文件下载到指定的路径 private static DesiredCapabilities getChromeCapabilities throws Exception Stri
  • Java HashSet 具有自定义相等标准? [复制]

    这个问题在这里已经有答案了 我一直在寻找类似于 Java TreeSet 在实例化时接收自定义比较器的能力 因此我不需要使用对象的默认相等 和哈希码 标准 我能想到的最接近的方法是将我的对象包装在一个私有的自定义类中 但这看起来很老套 这最
  • Maven 程序集:重命名解压文件

    我的多个使用 maven assemble plugin 的 Maven 项目需要将两个二进制文件复制到一个文件夹中 这是我所有项目共有的两个原始文件 程序运行程序 程序运行工具 我希望重复使用这组文件 它们可能来自 JAR 或 ZIP 文
  • 使用 getPathMatcher 的全局模式

    从 OCP 考试的 Kathy Sierra Bert Bates 书中我找到了以下代码 public class FileTest public static void matches Path path String glob Path
  • Java 8 中接口和抽象类之间的根本区别[重复]

    这个问题在这里已经有答案了 考虑到接口现在可以为其提供的方法提供实现 我无法正确合理地解释接口和抽象类之间的差异 有谁知道如何正确解释其中的差异 我还被告知 从性能角度来看 接口比抽象类更轻量 有人可以证实这一点吗 接口仍然不能有任何状态
  • 你在实际项目中使用过Quickcheck吗[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 快速检查 http www cs chalmers se rjmh QuickCheck 及其变体 即使有一个Java https bitbuc
  • Java邮件,设置回复地址不起作用

    我用java写了一个小的电子邮件发送程序 它有from to and reply to地址 当客户端尝试回复邮件时 应该能够回复reply to地址 目前它不起作用 我的代码如下 File Name SendEmail java impor

随机推荐