Package d’une application de démarrage printanière comprenant des fichiers JSP et des ressources statiques

Je veux empaqueter une application Spring-Boot sous la forme d’un mvn package jar, et je le fais avec le mvn package .

Cela produit un fichier jar qui ne contient pas de /src/main/webapp/resources /WEB-INF/jsp ni /src/main/webapp/resources .

Comment puis-je m’assurer que mon pot contient tout le nécessaire?

Voici mon pom.xml actuel:

 4.0.0  org.springframework.boot spring-boot-samples 1.0.0.RC3  jar  ${basedir}/../.. /    ${project.groupId} spring-boot-starter-web   ${project.groupId} spring-boot-starter-tomcat provided   org.apache.tomcat.embed tomcat-embed-jasper provided   javax.servlet jstl   commons-dbcp commons-dbcp   org.springframework spring-jdbc   org.apache.tomcat tomcat-jdbc   org.springframework spring-tx   org.postgresql postgresql 9.3-1101-jdbc41       org.springframework.boot spring-boot-maven-plugin   org.apache.maven.plugins maven-surefire-plugin  false         spring-snapshots http://repo.spring.io/snapshot  true    spring-milestones http://repo.spring.io/milestone  true      spring-snapshots http://repo.spring.io/snapshot   spring-milestones http://repo.spring.io/milestone   com.example.app 

L’exemple suivant fonctionne avec Spring Boot 1.3.3.RELEASE: https://github.com/ghillert/spring-boot-jsp-demo

La clé est de mettre le contenu statique de jsp dans:

 /src/main/resources/META-INF/resources/WEB-INF/jsp 

et assurez-vous de définir le préfixe de vue / suffixe dans votre application.properties:

 spring.mvc.view.prefix=/WEB-INF/jsp/ spring.mvc.view.suffix=.jsp 

Y at-il une raison pour laquelle vous ne pouvez pas utiliser le type d’emballage de guerre? https://maven.apache.org/plugins/maven-war-plugin/usage.html Je recommanderais d’utiliser le type d’empaquetage war et d’utiliser la structure d’application Web maven par défaut.

Si vous voulez vraiment utiliser le plugin jar pour votre application Web, vous devez le configurer pour votre projet. En raison de votre publication, je ne comprends pas votre structure et je ne peux pas vous donner d’exemple. Découvrez l’utilisation du plugin jar ici: https://maven.apache.org/plugins/maven-war-plugin/usage.html

Changez votre balise de construction en

     ${basedir}/src/main/webapp  **/**    ${basedir}/src/main/resources  **/**      org.springframework.boot spring-boot-maven-plugin   org.apache.maven.plugins maven-surefire-plugin  false     

Pour créer un fichier JAR exécutable avec Spring Boot, utilisez le plug-in spring-boot-maven-plugin dans votre pom.xml.

    org.springframework.boot spring-boot-maven-plugin    

Vous souhaitez peut-être consulter mon exemple d’application http://info.michael-simons.eu/2014/02/20/developing-a-web-application-with-spring-boot-angularjs-and-java-8 / (La source est sur GitHub, l’application est en direct et fonctionne à partir d’un fichier JAR).

Une chose que vous devriez noter: JSP de JAR ne fonctionne pas à cause de problèmes avec Tomcat intégré. J’utilise Thymeleaf. Si vous avez besoin de JSP, restz avec le déploiement de WAR.