【问题标题】:Only use parent for dependencies inheritance, possible?仅使用父项进行依赖项继承,可能吗?
【发布时间】:2020-07-18 07:43:18
【问题描述】:

我通常定义一个父 pom 来继承依赖项和构建。 问题是我不断收到有关冗余 groupId、版本、ecc 的警告。因为看来我继承的 pom 应该坚持父母的。

我不希望这样:有没有办法告诉 maven“我希望孩子们独立”?

<parent>
    <groupId>com.foo</groupId>
    <artifactId>parent</artifactId>
    <version>0.0.1-SNAPSHOT</version> <!-- this is fine -->
</parent>

<modelVersion>4.0.0</modelVersion>
<groupId>com.foo.agroup</groupId> <!-- this is not: I should keep com.foo -->
<artifactId>child</artifactId>
<version>1.0</version> <!-- this is not as well: I should keep 0.0.1-SNAPSHOT -->

【问题讨论】:

  • 您将版本从子 pom 移动到父 pom 以减少重复。如果您不想使用它,为什么要从父 pom 继承?
  • 依赖版本还可以,但是如果我的父 pom 是 0.0.1-SNAPSHOT 版本,我不一定希望我的孩子也使用那个版本。
  • 如果不想让子代继承那个版本,为什么要将父代设置为版本 X?
  • 我必须这样做以跟踪我的依赖项、属性和构建集合。
  • ..我认为,您需要/想要的(除了父 pom)是一个(或多个)“依赖项导入 pom”..您可以在其中编写和管理“集”依赖项..(?)

标签: maven


【解决方案1】:

您在问题中所做的完全正确。不要改变它。

如果您不是在一个多模块项目中,那么使用父级的groupId或版本是一种常见的方法。我们一直这样做。

我只是想知道您的警告来自哪里。它们在 Maven 构建中吗?还是在 Eclipse 中?

请复制/粘贴它们,以便我们检查它们。

总结:您的 POM 很好,警告只是噪音或垃圾(只要您不在多模块项目中)。

【讨论】:

  • 我不是,这些警告来自 Eclipse/IntelliJ IDE。所以你是说我可以放心地忽略它们吗?有没有办法阻止它们在java代码中显示诸如忽略警告?
  • 我只知道当您编写完全相同 groupId 时出现的警告,而不是在您编写不同的groupId 时出现的警告。您能否为您的问题添加屏幕截图?
  • 没有注意到我已经用父级错误替换了它。谢谢你的回答,现在我想我明白了一点:)
猜你喜欢
  • 2019-12-19
  • 1970-01-01
  • 2023-03-05
  • 2017-04-13
  • 1970-01-01
  • 2013-06-20
  • 2016-06-10
  • 1970-01-01
  • 2022-12-22
相关资源
最近更新 更多