Je suis sur le point de construire mon premier site Web en Java avec Spring Framework à l'aide de Spring Boot. Il est beaucoup plus facile de le créer dans jar
, mais j'ai quelques questions à ce sujet.
Quelles sont les différences en général?
Dans les fichiers jar
, les vues sont sous /resources/templates
, mais dans le fichier war
, elles sont sous /webapp/WEB-INF/
.
Quelles sont les différences? Puis-je déployer une jar
sur un hôte en ligne?
On peut dire à Spring Boot de produire un «gros JAR» contenant toutes les dépendances de votre module/service et pouvant être exécuté avec Java -jar <your jar>
. Voir "Créer un fichier JAR exécutable avec Maven" ici .
Vous pouvez également indiquer à Spring Boot de produire un fichier WAR , auquel cas vous choisirez probablement de le déployer dans un conteneur Web tel que Tomcat ou Jetty.
Beaucoup plus de détails sur le déploiement de Spring Boot ici .
spring-boot
application en tant que graisse *.jar
Il est possible de générer le fichier appelé fat JAR
, qui est un fichier *.jar
exécutable avec un conteneur d'application intégré (Tomcat
comme option par défaut) . Il existe des plugins spring-boot
pour différents systèmes de construction. Voici celui pour maven
: spring-boot-maven-plugin
Pour exécuter le type de fat
*.jar
, vous pouvez exécuter une commande simple:
Java -jar *.jar
Ou en utilisant l'objectif spring-boot-maven
:
mvn spring-boot:run
spring-boot
en tant qu'archive *.war
L'autre option consiste à expédier votre application sous forme de fichier war
à l'ancienne. Il pourrait être déployé dans n’importe quel conteneur de servlets. Voici la liste des étapes à suivre:
packaging
par war
(en parlant du pom.xml
de maven)spring-boot
principale de SpringBootServletInitializer
et remplacer la méthode SpringApplicationBuilder configure(SpringApplicationBuilder)
(voir javadoc )scope
de spring-boot-starter-Tomcat
comme provided
Cela dépend de votre déploiement. Si vous envisagez de déployer votre application sur un serveur d'applications Java EE existant (par exemple, Tomcat), l'approche standard consiste à effectuer une génération war
.
Lorsque vous utilisez l'approche Fat jar, votre application est déployée sur un conteneur d'applications incorporé fourni par Spring Boot. Effectuez Déploiement d'applications Spring Boot pour plus d'informations.
J'étais sous le même problème lorsque j'ai déployé mon problème de pot gratuitement sur mon local. Ensuite, je devais en faire la démonstration sur le serveur. Vous pouvez créer un fichier war en modifiant le tag pom.xml
<packaging>jar</packaging>
à
<packaging>war</packaging>
et vous aurez un fichier war dans votre cible que vous pourrez déployer sur votre serveur (Tomcat dans mon cas)