Maison >Java >javaDidacticiel >Analyse du code source de la gestion des dépendances SpringBoot
Les dépendances que nous avons ajoutées lors de la création du projet ne nous ont pas aidés à spécifier le numéro de versionAlors, comment SpringBoot spécifie-t-il le compte de version ?
Maintenant, décollons le lanceur de dépendances parent de SpringBoot
<!-- SpringBoot父项目依赖管理--> <parent> <artifactId>spring-boot-parent</artifactId> <groupId>org.springframework.boot</groupId> <version>2.2.9.RELEASE</version> <relativePath/> <!-- 查看本地仓库的源码 --> </parent>
Le pointeur de la souris reste allumé spring-boot-parentCtrl + bouton gauche de la souriscliquez sur Entrer et prenons un aperçu de ce dont le lanceur de dépendances parentales est responsable :
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${revision}</version> <relativePath>../spring-boot-dependencies</relativePath> </parent>
Entrez d'abord et découvrez : ce lanceur de dépendances parentales a un père, comme ci-dessus ! Nous analyserons cela en profondeur plus tard ! ! !
Ensuite, regardez
<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>
et voyez qu'il y a une déclaration d'attribut ici, qui déclare la version jdk, le format d'encodage, la version packagée et compilée, etc. ; ! !
Continuons
Cette partie concerne la gestion des plug-ins de SpringBoot
conseils :
Lors de l'importation de plug-ins, étant donné que le plug-in du module de gestion Il n'est pas nécessaire de prendre en compte les problèmes de contrôle de version du plug-in.
On Ctrl+clic droit , et dès qu'on entre, on voit une série de numéros de version :
Les numéros de version de nombreux frameworks tiers sont déclarés ici, et ceux correspondants ici sont le numéro de version de 2.2.9.RELEASE, si vous changez la version de SpringBoot, la version ici changera également. Mais comme mentionné précédemment, n'est qu'une déclaration ! ! !
Nous avons ensuite
La raison pour laquelle le projet n'a pas besoin d'importer le numéro de version doit être Ceci est basé sur la gestion des dépendances, donc mon projet Springboot dispose déjà d'un verrouillage de version et d'autres configurations après avoir hérité de spring-boot-starter-parent. C'est pourquoi il n'est pas nécessaire d'écrire un numéro de version pour certaines dépendances dans le projet Spring Boot.
gestion unifiée des versionsⅡ. D'où vient le package JAR dont dépend le projet ?
Spring-Boot-Starter-ParentLa fonction principale du starter de dépendance parent
est d'effectuer la
est effectué dans ce processus, et lorsque nous cliquons sur la dépendance dans n'importe quel lanceur de dépendances Web, nous constatons qu'il contient encore de nombreuses dépendances. En prenant Tomcat comme exemple :2.1 Analyse du code source Nous utilisons comme point de percée Nous utilisons toujours Ctrl + bouton gauche de la souris pour entrer. Gestion des dépendances de la série boot-starter-web :
Le transfert de dépendances<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>Nous avons uniquement introduit spring-boot-starter-web comme dépendance dans pom.xml (c'est-à-dire qu'il repose directement sur le démarreur de dépendance Web), et cela dépend de tomcat, springmvc , etc. Le
Il. contient toujours les exigences pour démarrer Tomcat toutes les dépendances. 2.2 Réponses à la question
À ce stade, nous pouvons savoir que la fonction principale du starter de dépendance spring-boot-starter-web est de conditionner toutes les dépendances du scénario de développement web (basé sur la méthode de transfert de dépendances, charger le pot correspondant dans le sac d'entrepôt actuel).
Exactement, lorsque le démarreur de dépendance spring-boot-stater-web est introduit dans pom, le numéro de version du fichier de dépendance importé est toujours géré uniformément par la dépendance parent spring-boot-starter-parent (c'est également un élément important). (La manifestation deCe qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!