プロジェクトの作成時に追加した依存関係では、バージョン番号を指定するのに役立ちませんでは、SpringBoot はどのようにバージョン アカウントを指定するのでしょうか?
さあ、SpringBoot の親依存関係スターターを剥がしましょう
<!-- SpringBoot父项目依赖管理--> <parent> <artifactId>spring-boot-parent</artifactId> <groupId>org.springframework.boot</groupId> <version>2.2.9.RELEASE</version> <relativePath/> <!-- 查看本地仓库的源码 --> </parent>
マウス ポインタは spring -boot- の上に留まります。親UpCtrl マウスの左ボタンクリックして、この親依存関係ランチャーが何を担当しているかを見てみましょう:
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${revision}</version> <relativePath>../spring-boot-dependencies</relativePath> </parent>
まず中に入って見つけます: この親依存関係ランチャーがあります。上記のように、彼は父親です!これについては後で詳しく分析します。 ! !
その後、読み続けてください
<properties> <main.basedir>${basedir}/../..</main.basedir> <disable.checks>false</disable.checks> <git.url>https://github.com/spring-projects/spring-boot</git.url> <git.connection>scm:git:git://github.com/spring-projects/spring-boot.git</git.connection> <git.developerConnection>scm:git:ssh://git@github.com/spring-projects/spring-boot.git</git.developerConnection> <java.version>1.8</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <maven.version>3.5.4</maven.version> <maven-resolver.version>1.1.1</maven-resolver.version> <spock.version>1.3-groovy-2.5</spock.version> <spring-asciidoctor-extensions.version>0.4.0.RELEASE</spring-asciidoctor-extensions.version> <spring-doc-resources.version>0.1.3.RELEASE</spring-doc-resources.version> <spring-doc-resources.url>https://repo.spring.io/release/io/spring/docresources/spring-doc-resources/${spring-doc-resources.version}/spring-doc-resources-${spring-doc-resources.version}.zip</spring-doc-resources.url> <testcontainers.version>1.12.5</testcontainers.version> <testng.version>6.14.3</testng.version> </properties>
#続きましょう この部分は SpringBoot のプラグイン管理ですここには、jdk バージョン、エンコード形式、パッケージ化およびコンパイルされたバージョンなどを宣言するプロパティ宣言が表示されますが、これは単なるステートメントです。 ! !
ヒント: プラグインをインポートする場合、ここでの 管理モジュール プラグインは特定のバージョン番号を必要とするため、プラグインのバージョン管理を考慮する必要はありません。1.2 質問への答えCtrl キーを押しながら を右クリックすると、すぐに一連のバージョン番号が表示されます。 多くのサードパーティ フレームワークのバージョン番号がここで宣言されています。これは、
2.2.9.RELEASE のバージョン番号に対応します。SpringBoot のバージョンが変更された場合、ここのバージョンも変わります。ただし、前述したように、 は単なるステートメントです。 ! !
それでは、 プロジェクトがバージョン番号をインポートする必要がない理由は次のとおりですヒント: spring-boot-starter-parentは、spring-boot-dependencyを継承することでSpringBootの依存関係管理を実現しているので、私のSpringbootプロジェクトでは、spring-boot-starter-parentを継承した上でバージョンロックなどの設定がすでに行われている。はい。これが、Spring Boot プロジェクトでⅡ. プロジェクトが依存する JAR パッケージはどこから来ますか?部分的な依存関係 のバージョン番号を記述する必要がない理由です。
2.1 ソース コードを分析します < ;> を使用します。画期的な方法として、Ctrl キーを押しながらマウスの左ボタンをクリックします。spring-boot-starter-web では、一連の依存関係管理が明確に確認できます:Spring-Boot-Starter-Parent Parent dependency Starter主な機能は 統合バージョン管理を実行することです では、プロジェクトが依存する JAR パッケージはどこから来たのでしょうか?
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-json</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> <exclusions> <exclusion> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-el</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> </dependency> </dependencies>これは紹介するだけです。 pom.xml では、Spring-boot-starter-web は依存関係 (つまり、Web 依存関係スターターに直接依存) であり、tomcat、springmvc などに依存しています。つまり、
依存関係の転送 Web 依存関係ランチャーで依存関係をクリックすると、そこにはまだ多くの依存関係があることがわかります。Tomcat を例に挙げます。 # には、Tomcat を起動するために必要なものがすべて含まれています。
2.2 質問への答え
この時点で、spring-boot-starter-web 依存関係スターターの主な機能は、Web のすべての依存関係をパッケージ化することであることがわかります。開発シナリオ (依存関係の配信方法に基づいて、現在のウェアハウスに対応する jar パッケージをロードします)。
このように、pom. 依存関係ファイルなどに spring-boot-stater-web 依存関係スターターが導入されると、当然ながら、これら導入された依存関係ファイルのバージョン番号は依然として によって統一管理されます。 spring-boot-starter-parent 親の依存関係 (これは、SpringBoot の規則は構成よりも優れている の重要な現れでもあります) Spring Boot が提供するもの 上記で紹介した Web 依存関係ランチャーに加えて、関連する依存関係も提供します。他の多くの開発シナリオ。
以上がSpringBoot の依存関係管理のソース コード分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。