Spring Boot – parent pom quand vous avez déjà un pom parent

Existe-t-il une approche spécifique recommandée pour l’inclusion du pom parent Spring-Boot dans les projets qui ont déjà un POM parent requirejs?

Que recommandez-vous pour les projets qui doivent s’étendre d’un parent organisationnel (ceci est extrêmement commun et même quelque chose que beaucoup / la plupart des projets ont publié dans Maven central en fonction des pensions alimentaires qu’ils proviennent). La plupart des éléments de construction sont liés à la création de fichiers JAR exécutables (par exemple, l’exécution de Tomcat / Jetty intégré). Il existe des moyens de structurer les choses afin que vous puissiez obtenir toutes les dépendances sans sortir d’un parent (similaire à la composition et à l’inheritance). Vous ne pouvez pas obtenir un truc de construction de cette façon.

Il est donc préférable d’inclure tous les pom parents de boot-boot à l’intérieur du POM parent requirejs ou simplement d’avoir une dépendance POM dans le fichier POM du projet.

Autres options?

TIA,

Scott

Vous pouvez utiliser le parent-démarrage-spring-starter comme un “bom” (cf. les autres projets Spring et Jersey qui supportent cette fonctionnalité maintenant), et l’inclure uniquement dans la section de gestion des dépendances avec scope = import. des avantages de l’utiliser (c.-à-d. la gestion des dépendances) sans remplacer les parameters de votre parent réel.

Les 2 autres principales choses qu’il fait sont

  1. définir un chargement de propriétés pour définir rapidement des versions de dépendances à remplacer
  2. configurer quelques plugins avec la configuration par défaut (principalement le plugin Spring Boot maven). Donc, ce sont les choses que vous devrez faire manuellement si vous utilisez votre propre parent.

Exemple fourni dans la documentation de Spring Boot :

    org.springframework.boot spring-boot-dependencies 1.1.5.RELEASE pom import    

Mise à jour 2018-01-04 avec 1.5.9.RELEASE.

J’ai le code complet et exemple exécutable ici https://www.surasint.com/spring-boot-with-no-parent-example/

Vous avez besoin de cela comme base

      org.springframework.boot spring-boot-dependencies ${springframework.boot.version} pom import    

Mais cela ne suffit pas, vous devez également définir explicitement goal pour spring-boot-maven-plugin (si vous utilisez Spring Boot en tant que parent, vous n’avez pas à le définir explicitement)

    org.springframework.boot spring-boot-maven-plugin ${springframework.boot.version}    repackage      

Sinon, vous ne pouvez pas créer de jar ou de guerre exécutable.

Pas encore, si vous utilisez JSP, vous devez avoir ceci:

  false  

Sinon, vous obtiendrez ce message d’erreur:

  [ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war (default-war) on project spring-boot-09: Error assembling WAR: webxml atsortingbute is required (or pre-existing WEB-INF/web.xml if executi ng in update mode) -> [Help 1] 

NON, cela ne suffit toujours pas si vous utilisez Maven Profile et Resource Filter avec Spring Boot avec “@” au lieu de “$ {}” (comme cet exemple https://www.surasint.com/spring-boot-maven -resource-filter / ). Ensuite, vous devez explicitement append ceci dans

    src/main/resources true   

Et ceci dans

   org.apache.maven.plugins maven-resources-plugin 2.7   @  false   

Voir l’exemple dans le lien https://www.surasint.com/spring-boot-with-no-parent-example/ .