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.