首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >spring-boot-starter parent:这是否包括在依赖项中?

spring-boot-starter parent:这是否包括在依赖项中?
EN

Stack Overflow用户
提问于 2019-11-29 20:24:37
回答 2查看 614关注 0票数 0

我在spring中理解了一些东西,并且使用了一个非常简单的代码片段,比如在pom.xml中添加以下内容

代码语言:javascript
复制
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.1.RELEASE</version>
</parent>

正如我在这个上下文中所理解的,<parent>意味着在我的pom.xml中,我们有一个父pom.xml (见spring-boot-starter-parent的pom.xml文件),它将包含依赖项列表。

重要的是它只是pom打包,而不是真正的jar /二进制(如果我错了请更正)

我在mvn存储库中看到了以下内容:

代码语言:javascript
复制
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.1.RELEASE</version>
    <type>pom</type>
</dependency>

我的疑问是:

我们如何将它作为一个依赖项来包含,它只是一个pom包(而不是一个真正的jar / war),它充当了拥有共同依赖关系的中心位置?允许这样做吗?我尝试在我的项目中添加,但是在STS中看到了错误。

怎么下载的?我们能看看这个“家长”的内容吗?

EN

回答 2

Stack Overflow用户

发布于 2019-11-29 21:04:04

首先,在这种情况下,您可能忽略了父级pom的含义。

任何特定版本(本例中为2.2.1)的Spring引导都附带了许多技术/库的可能集成。因此,它提供了要使用的库的“默认”版本,因为很难检查它是否与所有库的所有可能版本兼容。当然,您可以提供自己的版本,但是应该测试作为应用程序维护者的兼容性。

因此,如果您将签出春启动启动器父pom的源代码,您将看到它提供了一些插件和插件管理,更重要的是从另一个名为spring-启动依赖项的pom继承。

注意,它没有向项目添加任何依赖项。它只定义了一个dependencyManagement节。这意味着,一旦您从这个pom中使用了项目中的依赖项(继承),您就不必指定版本,只需指定组id和工件id。同样,这是因为spring引导默认提供非常特定的第三方版本--该版本已被验证与.

至于问题的第二部分--实际上,像你已经发布的那样,在打包pom中包含依赖关系是没有意义的,你能提供一个链接吗?你看过这个链接吗?

有时候,当人们在他们的项目中采用spring引导时,他们已经有了一些父级,所以他们不能使用继承,在这种情况下,他们可以使用一个非常特殊的maven作用域"import“,并使用对pom的依赖,将它作为BOM (物料清单)来处理--坦白地说,maven中有一个相当高级的东西。但是spring在这些情况下使用了这个特性。

依赖项包含如下所示:

代码语言:javascript
复制
<dependencies>
         ...
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.2.1.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>

注:“进口线”。从maven的站点:这意味着允许从远程POM文件中检索依赖关系管理信息(如版本),并将其排除在外。

这里是关于这个主题的教程。

票数 2
EN

Stack Overflow用户

发布于 2019-11-29 20:35:14

@CuriousMind,包括作为依赖项的spring-boot-starter-parent,就像试图在Java中实例化接口或抽象类一样。正如您注意到的,它的打包是pom,这意味着它只是一个帮助配置maven项目的maven工件。Jar和War将包含一些java二进制文件。我认为MVN存储库代码会自动生成所有样本作为依赖项。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59110606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档