POM 以相同的方式引用依赖项和父项。我们如何选择什么是什么?

POM references a dependency and a parent the same way. How we choose what is what?

我发现 POM 中 parentdependency 引用的语法几乎相同:

<parent>
    <groupId>com.topdesk</groupId>
    <artifactId>tis-parent</artifactId>
    <version>3.4</version>
</parent>

Dependency内容相同。为什么我们选择用 parent 代替 dependency?

这是不同的概念。引用父项使 Maven 寻找它继承的 pom(使用所有插件定义、配置文件、声明的 dependencyManagement 等),即父项和你的 pom 被放在一起作为一个和已执行。

使用 dependency 意味着 Maven 寻找 jar(除非你明确告诉它寻找 pom,这本质上意味着它将来自该 pom 的所有依赖项添加为传递依赖项)。这个 jar 放在类路径中(连同它的依赖树)。