web-dev-qa-db-ja.com

`spring-boot-starter` jarとは何ですか?

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

これらのjarの機能を実際に使用するために必要なSpring Boot jarはどれですか?私のプロジェクトには依存関係管理がありません。私のプロジェクトは、Spring Securityを使用するSpring MVCアプリケーションです。

42
khateeb

これらの依存関係は、すべての必要な依存関係を持つアドホックスケルトンプロジェクトへの統一されたエントリを提供することを目的としています。

それらは通常、プロジェクト記述子(pom.xml)から継承する必要があります。これにより、設定されたバージョンですべての親依存関係を取得できます。開発者側でこれ以上の負担はありません。

スターターPOMは、アプリケーションに含めることができる便利な依存関係記述子のセットです。サンプルコードを探し回ったり、依存関係記述子の貼り付けをコピーしたりすることなく、必要なすべてのSpringおよび関連テクノロジのワンストップショップを取得できます。たとえば、データベースアクセスにSpringとJPAの使用を開始する場合は、spring-boot-starter-data-jpa依存関係をプロジェクトに含めるだけで済みます。

参考、Spring Boot Starter POM

編集:

これらのPOMを使用して、特定の種類のプロジェクトに使用できる依存関係を合成できます。単純なSpring MVCプロジェクトの場合、次のアーティファクトが含まれます(spring-boot-starterspring-boot-starter-webspring-boot-starter-securityそれぞれ):

  • スプリングブートアーティファクト:
    • 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中央リポジトリ で見つけることができます。

一部のコンポーネントが欠落している可能性があり、アーティファクトが更新される可能性があるため、これは完全な参照リストではない場合があることに注意してください。

24
tmarwen

簡単に言えば、それらは依存性記述子であり、推移する依存関係をリストし、連携して動作するようにテストされているバージョンを使用して、アプリケーションのファセットの面倒を見るライブラリをまとめようとする時間を節約します。

4

次のコマンドを使用して、mavenに、スプリングブートプロジェクト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 Initializr で必要なスプリングブートスターターを作成します。また、 maven wrapper を使用します。これはmavenコマンドをラップし、mavenを個別にセットアップしてインストールする時間を節約します。

したがって、Spring InitializrからZipファイルをダウンロードし、解凍して、解凍されたフォルダーでコマンドプロンプトを開き、代わりに次のコマンドを使用します。

Linux/Mac OSの場合

 ./mvnw dependency:resolve

窓用

 ./mvnw.cmd dependency:resolve
0
Sanj