java-什么是“ spring-boot-starter”罐子?

在Spring Boot中,模式spring-boot-starter上有一些jar。所有这些jar不包含任何程序包。 它们有什么用?

在Maven POM中,添加了以下依赖项:

  • org.springframework.boot:spring-boot-starter-web
  • org.springframework.boot:spring-boot-starter-actuator
  • org.springframework.boot:spring-boot-starter-security

我实际上需要使用哪些Spring Boot jar来使用这些jar中的功能? 我的项目没有任何依赖项管理。 我的项目是使用Spring Security的Spring MVC应用程序。

khateeb asked 2020-08-11T02:59:19Z
3个解决方案
24 votes

这些依赖关系旨在为具有所有所需依赖关系的即席骨架项目提供统一的条目。

通常应从项目描述符(pom.xml)继承它们,以便获得具有配置版本的所有父依赖项。 开发人员方面无需再承担其他负担:

入门POM是可以在应用程序中包括的一组便捷的依赖项描述符。 您可以一站式购买所需的所有Spring和相关技术,而不必遍历示例代码并复制依赖项描述符的粘贴负载。 例如,如果您想开始使用Spring和JPA进行数据库访问,只需在项目中包含spring-boot-starter-data-jpa依赖项,就可以了。

参考,Spring Boot Starter POM。

编辑:

这些POM可用于合成可用于某种项目的依赖关系,例如 对于一个简单的Spring MVC项目,将包含以下工件(分别从spring-boot-starter,spring-boot-starter-web,spring-boot-starter-security读取):

  • Spring Boot工件:
    • org.springframework.boot:spring-boot
    • org.springframework.boot:spring-boot-autoconfigure
    • org.springframework.boot:spring-boot-starter-logging
  • Spring Core,Web,MVC,安全工件:
    • org.springframework:spring-core
    • org.springframework:spring-web
    • org.springframework:spring-webmvc
    • org.springframework:spring-beans
    • org.springframework:spring-context
    • org.springframework:spring-expression
    • org.springframework:spring-aop
    • org.spring framework.security:spring-security-config
    • org.spring framework.security:spring-security-Web
    • org.hibernate:休眠验证器
    • com.fasterxml.jackson.core:jackson-databind

可以在maven中央存储库中无缝浏览导航结果的工件。

请注意,这可能不是完整的参考列表,因为某些组件可能会出错,因此工件可能会被更新。

tmarwen answered 2020-08-11T03:01:06Z
4 votes

简而言之,它们是依赖项描述符,列出了经过测试可一起使用的版本的可传递依赖项,从而节省了尝试将库集中在一起处理应用程序某些方面的时间。

Alexander Suraphel answered 2020-08-11T03:01:27Z
0 votes

您还可以使用以下命令让maven报告在spring boot项目pom.xml文件中定义的各个spring-boot-starter- *所需的依赖关系。

mvn dependency:resolve

例如,对于春季1.5.8.RELEASE,使用以下jar(和版本)

注释格式为组ID:工件ID:版本:范围

The following files have been resolved:
    com.fasterxml.jackson.core:jackson-annotations:jar:2.8.0:compile
    org.jboss.logging:jboss-logging:jar:3.3.1.Final:compile
    aopalliance:aopalliance:jar:1.0:compile
    org.hamcrest:hamcrest-library:jar:1.3:test
    org.mockito:mockito-core:jar:1.10.19:test
    org.assertj:assertj-core:jar:2.6.0:test
    org.springframework:spring-beans:jar:4.3.12.RELEASE:compile
    org.springframework.boot:spring-boot-test:jar:1.5.8.RELEASE:test
    org.springframework.boot:spring-boot-autoconfigure:jar:1.5.8.RELEASE:compile
    org.springframework.boot:spring-boot-starter-tomcat:jar:1.5.8.RELEASE:compile
    org.skyscreamer:jsonassert:jar:1.4.0:test
    org.yaml:snakeyaml:jar:1.17:runtime
    com.fasterxml:classmate:jar:1.3.4:compile
    org.slf4j:jcl-over-slf4j:jar:1.7.25:compile
    org.springframework.boot:spring-boot-starter-test:jar:1.5.8.RELEASE:test
    org.hamcrest:hamcrest-core:jar:1.3:test
    com.jayway.jsonpath:json-path:jar:2.2.0:test
    org.apache.tomcat.embed:tomcat-embed-websocket:jar:8.5.23:compile
    org.springframework.boot:spring-boot:jar:1.5.8.RELEASE:compile
    org.apache.tomcat:tomcat-annotations-api:jar:8.5.23:compile
    org.springframework:spring-context:jar:4.3.12.RELEASE:compile
    org.hibernate:hibernate-validator:jar:5.3.5.Final:compile
    javax.validation:validation-api:jar:1.1.0.Final:compile
    org.apache.tomcat.embed:tomcat-embed-core:jar:8.5.23:compile
    org.springframework.boot:spring-boot-starter-logging:jar:1.5.8.RELEASE:compile
    com.fasterxml.jackson.core:jackson-core:jar:2.8.10:compile
    org.ow2.asm:asm:jar:5.0.3:test
    org.apache.tomcat.embed:tomcat-embed-el:jar:8.5.23:compile
    org.slf4j:log4j-over-slf4j:jar:1.7.25:compile
    org.springframework:spring-web:jar:4.3.12.RELEASE:compile
    ch.qos.logback:logback-core:jar:1.1.11:compile
    org.springframework.security:spring-security-core:jar:4.2.3.RELEASE:compile
    org.springframework:spring-test:jar:4.3.12.RELEASE:test
    org.springframework.boot:spring-boot-starter:jar:1.5.8.RELEASE:compile
    org.springframework.security:spring-security-test:jar:4.2.3.RELEASE:test
    org.springframework.boot:spring-boot-starter-web:jar:1.5.8.RELEASE:compile
    org.springframework:spring-core:jar:4.3.12.RELEASE:compile
    org.springframework.boot:spring-boot-starter-security:jar:1.5.8.RELEASE:compile
    org.springframework.boot:spring-boot-actuator:jar:1.5.8.RELEASE:compile
    org.objenesis:objenesis:jar:2.1:test
    org.springframework:spring-expression:jar:4.3.12.RELEASE:compile
    org.springframework.boot:spring-boot-starter-actuator:jar:1.5.8.RELEASE:compile
    org.springframework.security:spring-security-config:jar:4.2.3.RELEASE:compile
    org.springframework.security:spring-security-web:jar:4.2.3.RELEASE:compile
    org.springframework:spring-aop:jar:4.3.12.RELEASE:compile
    junit:junit:jar:4.12:test
    org.slf4j:slf4j-api:jar:1.7.25:compile
    net.minidev:json-smart:jar:2.2.1:test
    org.springframework.boot:spring-boot-test-autoconfigure:jar:1.5.8.RELEASE:test
    net.minidev:accessors-smart:jar:1.1:test
    org.springframework:spring-webmvc:jar:4.3.12.RELEASE:compile
    ch.qos.logback:logback-classic:jar:1.1.11:compile
    org.slf4j:jul-to-slf4j:jar:1.7.25:compile
    com.fasterxml.jackson.core:jackson-databind:jar:2.8.10:compile

只需忽略具有部署测试范围的jar。

如果您没有方便的Spring Boot项目,只需在Spring Initializr中创建一个,即可使用所需的任何Spring Boot启动器。 它还使用maven包装器,该包装器包装了maven命令,从而节省了分别设置和安装maven的时间。

因此,只需从Spring Initializr下载zip文件,解压缩并在解压缩的文件夹中打开命令提示符,然后使用以下命令即可

对于Linux / Mac OS

 ./mvnw dependency:resolve

对于窗户

 ./mvnw.cmd dependency:resolve
Sanj answered 2020-08-11T03:02:18Z
translate from https://stackoverflow.com:/questions/28273543/what-are-spring-boot-starter-jars