Après avoir lu la documentation de Spring et d'autres articles sur le Web, je ne comprends toujours pas quelle est la différence entre le plugin Spring Boot Maven spring-boot: repackage et un normal package mvn.
J'ai pensé que le package mvn crée un bocal avec toutes les dépendances incluses, alors quelle est vraiment la raison d'utiliser le plugin d'ici Spring?
L'objectif du package maven et l'objectif spring-boot: reconditionnement sont de nature différente . L'objectif de reconditionnement Spring-Boot est principalement destiné à rendre un exécutable JAR ou WAR à partir de la ligne de commande elle-même en utilisant Java -jar *.jar
tandis que le maven package
objectif prendre le code compilé et l'empaqueter dans son format distribuable, tel qu'un JAR. C'est l'objectif de repackage Spring-boot qui reconditionne le JAR produit par maven pour spécifier la classe principale et la faire exécutable en utilisant un conteneur intégré.
Paquet Maven
La première méthode, et la plus courante, pour définir l'emballage de votre projet via l'élément POM également nommé. Certaines des valeurs d'emballage valides sont pot, guerre, oreille et pompon. Si aucune valeur d'emballage n'a été spécifiée, elle sera par défaut jar.
Lorsqu'un package est défini, chaque package contient une liste d'objectifs à lier à une phase particulière, le package jar liera les objectifs suivants pour créer des phases du cycle de vie par défaut: processus-ressources, compilation, processus-test-ressources, test- compiler, tester, empaqueter, installer, déployer.
Spring-boot: reconditionnement
Le plugin à inclure est:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.1.4.RELEASE</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
La configuration reconditionne un bocal ou une guerre qui est créé pendant la phase de package du cycle de vie Maven.
Donc, une fois que le plugin spring-boot-maven a été inclus dans votre pom.xml, il essaie automatiquement de réécrire les archives pour les rendre exécutables en utilisant le spring-boot: repackage objectif. Vous devez configurer votre projet pour construire un bocal ou un war (selon le cas) en utilisant l'élément de packaging habituel.
Référence: https://docs.spring.io/spring-boot/docs/current/reference/html/build-tool-plugins-maven-plugin.html
Printemps reconditionnez un bocal ou une guerre qui est construit pendant la phase d'emballage du cycle de vie Maven. L'exemple suivant montre à la fois le pot reconditionné et le pot d'origine dans le répertoire cible:
$ mvn package
$ ls target/*.jar
target/myproject-1.0.0.jar target/myproject-1.0.0.jar.original
Si vous n'incluez pas la configuration, vous pouvez exécuter le plugin seul (mais uniquement si l'objectif du package est également utilisé). Par exemple:
$ mvn package spring-boot:repackage
$ ls target/*.jar
target/myproject-1.0.0.jar target/myproject-1.0.0.jar.original
Voir plus de détails sur le site Web du printemps en utilisant le lien
le package mvn crée un pot ou une guerre.
Le plugin Spring Boot prend ce pot ou cette guerre et les reconditionne pour les rendre exécutables à partir de la ligne de commande (c'est-à-dire qu'aucun serveur d'application n'est nécessaire).
Depuis la documentation du plugin:
"Reconditionne les archives JAR et WAR existantes afin qu'elles puissent être exécutées à partir de la ligne de commande à l'aide de Java -jar."