


Comment introduire le package jar de dépendance local dans le projet springboot et le conditionner dans le dossier lib
May 11, 2023 am 11:37 AMAvant-propos :
Au travail, j'ai rencontré un projet Web Java construit avec le framework springboot, qui devait intégrer des fonctions push tierces, j'ai donc utilisé le service push Xiaomi et téléchargé le package jar correspondant. L'introduction de jars locaux dans le projet n'est pas un gros problème. Après avoir écrit le code, il n'y a aucun problème à passer le test de la classe de test. Préparez-vous ensuite à empaqueter et à déployer sur le serveur de développement. Étant donné que le projet est déployé via Tomcat, la méthode d'empaquetage est dans un package de guerre. Après l'empaquetage, téléchargez-le sur le serveur de développement. Après un démarrage réussi, je suis allé tester l'interface push écrite et j'ai constaté qu'elle échouait.
Grâce à l'analyse, nous avons constaté qu'aucun package jar lié au push n'est introduit localement dans le répertoire lib où les jars dépendants du projet sont stockés dans le pack war. Après une demi-heure de lutte, le problème a été résolu. Après l'avoir résolu, j'ai découvert que j'avais en fait oublié les connaissances de base de Maven. Voici un résumé du projet springboot qui présente les packages jar locaux et comment empaqueter les jars dans le dossier lib via l'empaquetage maven :
1 Créez d'abord un dossier lib dans le répertoire des ressources et placez les packages jar requis dans le dossier lib.
2. Dans le fichier pom.xml, ajoutez les coordonnées des dépendances.
Remarque : Puisque le pot local est importé ici, vous devez ajouter
<dependency> ... <!-- 表示当前jar是外部引入的,maven不会在repository查找它 --> <scope>system</scope> <!-- 指定引入的外部jar存放的路径,一般将jar包放在项目的某个目录下,通过相对路径指定 --> <systemPath>...</systemPath> </dependency>
3 Dans la balise ;dependency> Les modifications suivantes doivent être apportées
<build> <finalName>xxxxxx</finalName> <plugins> <!--配置将第三方jar打进jar包中,跟<packaging>jar</packaging>配合,如果不写,springboot默认是打成jar包--> <!--<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <!-- 项目中单独引入第三方jar时,includeSystemScope值要为true <includeSystemScope>true</includeSystemScope> </configuration> </plugin>--> <!-- 打war包 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.2.2</version> <configuration> <webResources> <!-- 配置将第三方jar打进war包中,跟<packaging>war</packaging>配合 --> <webResource> <directory>${pom.basedir}/src/main/resources/lib/</directory> <targetPath>WEB-INF/lib/</targetPath> <includes> <include>**/*.jar</include> </includes> </webResource> </webResources> </configuration> </plugin> </plugins> </build>
Selon les besoins du projet, il peut être déployé en tant que package jar ou en tant que package war. différentes configurations doivent être ajoutées. Si vous devez le regrouper dans un package war, n'oubliez pas d'ajouter la configuration
4. Testez et vérifiez après l'empaquetage et le déploiement
Vous pouvez le tester en appelant l'interface appropriée, ou vous pouvez observer directement si le fichier jar local importé existe dans le dossier lib du package de déploiement pour déterminer
Ce 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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment Springboot intègre Jasypt pour implémenter le chiffrement des fichiers de configuration

Comment exécuter des fichiers jar sous Linux

Comment SpringBoot intègre Redisson pour implémenter la file d'attente différée

Comment utiliser Redis pour implémenter des verrous distribués dans SpringBoot

Comment résoudre le problème selon lequel Springboot ne peut pas accéder au fichier après l'avoir lu dans un package jar

Comparaison et analyse des différences entre SpringBoot et SpringMVC

Comment SpringBoot personnalise Redis pour implémenter la sérialisation du cache

Comment obtenir la valeur dans application.yml au Springboot
