it-swarm.com.ru

Что такое банки "весна-ботинок-стартер"?

В Spring Boot на шаблоне spring-boot-starter есть несколько jar-файлов. Все эти банки не содержат никаких пакетов. Как они используются?

В Maven POM добавлены следующие зависимости:

  • org.springframework.boot: весна-загрузка-стартер-веб
  • org.springframework.boot: весна-загрузка-стартер-привод
  • org.springframework.boot: весна-загрузка-стартер-безопасность

Какие банки Spring Boot мне действительно нужны, чтобы использовать их функциональность? Мой проект не имеет управления зависимостями. Мой проект - приложение Spring MVC, которое использует Spring Security.

38
khateeb

Эти зависимости предназначены для обеспечения единой записи в специализированном каркасном проекте со всеми необходимыми зависимостями.

Обычно они должны наследоваться от вашего дескриптора проекта (pom.xml), чтобы вы могли получить все родительские зависимости с настроенными версиями. Нет больше бремени на стороне разработчика:

Начальные POM - это набор удобных дескрипторов зависимостей, которые вы можете включить в свое приложение. Вы получаете универсальное решение для всех необходимых вам Spring и связанных с ними технологий, без необходимости искать примеры кода и копировать множество дескрипторов зависимостей. Например, если вы хотите начать использовать Spring и JPA для доступа к базе данных, просто включите в ваш проект зависимость spring-boot-starter-data-jpa, и все готово.

Ссылка, POM Spring Boot Starter.

Правка:

Эти 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.springframework.security:spring-security-config
    • org.springframework.security:spring-security-web
    • org.hibernate: hibernate-validator
    • com.fasterxml.jackson.core: jackson-databind

Артефакты можно легко найти в результатах поиска в центральном репозитории maven .

Обратите внимание, что это может быть не полноценный список ссылок, поскольку некоторые компоненты могут не работать, поэтому артефакты подлежат обновлению.

23
tmarwen

Проще говоря, они являются дескрипторами зависимостей, которые перечисляют транзитивные зависимости с версиями, которые протестированы для совместной работы, чтобы сэкономить ваше время от попыток собрать библиотеки, которые заботятся о каком-либо аспекте приложения.

4
Alexander Suraphel

Вы также можете заставить maven сообщать о зависимостях, требуемых различным spring-boot-starter- *, определенным в файле весеннего загрузочного проекта pom.xml, с помощью следующей команды

mvn dependency:resolve

Например, с пружиной 1.5.8.RELEASE используются следующие банки (и версии)

Формат примечания: Идентификатор группы: Идентификатор артефакта: Версия: Область

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

Просто игнорируйте банки, которые имеют тестовую область для развертывания. 

Если у вас нет удобного проекта весенней загрузки, просто создайте его в Spring Initializr , с любыми стартерами весенней загрузки, которые вам нужны. Он также использует maven wrapper , который упаковывает команду maven, экономя ваше время на настройку и установку maven отдельно. 

Так что просто скачайте Zip-файл из Spring Initializr, разархивируйте и откройте командную строку в разархивированной папке и используйте вместо нее следующую команду

Для Linux/Mac OS

 ./mvnw dependency:resolve

Для окон

 ./mvnw.cmd dependency:resolve
0
Sanj