IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Maven Java Discussion :

Maven multi module , packaging d'application Spring MVC


Sujet :

Maven Java

  1. #1
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 210
    Points : 83
    Points
    83
    Par défaut Maven multi module , packaging d'application Spring MVC
    Bonsoir à tous !

    J'aimerais savoir quel sont les "bonnes pratiques" niveau packaging d'une applis Spring MVC / JPA2

    Actuellement j'ai créer un projet parent et plusieurs modules de JAR et un de type WAR

    Dans celui de types WAR je n'ai aucun code Java en fait j'ai seulement mis les web.xml, les JSP etc ...

    Car mon but était de n'avoir aucune classe qui se retrouve dans WEB-INF/classes mais plutôt des Jar dans WEB-INF/lib

    mais bon voilà comme d'hab je me pose plein de question sur la bonne façon de faire et surtout comment bien répartir les différentes partie de mon appli.
    Je me suis poser également la question, est que ça serait mieux d'avoir 1 module par couche ? ou 1 module par features (genre cms, product manager etc mais sachant du coup certain module vont quand meme se retrouver dépendant d'autre) ?

    Alors vous ? vous faites comment ?

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Bonjour,

    Je dirais que les 2 approches sont acceptables :

    1. Tout mettre dans un seul module de type WAR
    2. Séparer par couche (persistence, business, presentation) puis regrouper le tout dans un projet WAR


    Maintenant, j'aimerais poser une question dans le cas de l'approche #2 : quel est l'intérêt de séparer le projet en de multiples JAR ?
    Parfois, il se peut qu'une partie du code de ce projet soit nécessaire pour d'autres projets. Dans ce cas-là, il sera effectivement préférable d'avoir un JAR a exporter contenant le moins de chose spécifique au projet initial. C'est bien plus simple que d'être dépendant d'un WAR, ou encore de bidouiller (un peu) le pom.xml pour avoir aussi les sources du projet web dans un JAR.
    Si ce n'est pas le cas, et que tout le code est utilisé uniquement par cette application, alors je vois beaucoup moins l'intérêt de faire une telle séparation, si ce n'est de complexifier inutilement sa structure de projet...

  3. #3
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 210
    Points : 83
    Points
    83
    Par défaut
    En fait en ce qui me concerne j'y vois pas mal d’intérêt le premier c'est d'avoir une meilleur séparation de mes couche.

    Le 2ème interet est que j'envisage à plus ou moins court terme de séparer en 2 webapp la partie frontend et la partie backoffice (l'interface d'admin) donc du coup ça me semble assez justifier puisque les 2 webapp utiliseront le même model , les services etc ....

    L'autre chose c'est aussi pour les déploiement partiel, par exemple j'ai un bug dans un service ou controller , je veux pouvoir déployer le minimum car mon appli commence à être assez grosse (environ 500Mo) et je ne dispose pas toujours d'une connexion internet hyper fiable.

    En fait je suis en train de me creuser la tête pour bien tout séparer !
    Mais je ne sais pas trop quoi faire pour la partie controller Spring car c'est quand même lié à la la webapp.

    Donc soit je créer un module "jar" pour les controller soit je les met dans mon modules WAR et là ils se retrouveront dans WEB-INF/classes (et cette dernière ne me plait pas trop car je trouve que ça fait un peut anarchique)

    En fait je sais pas trop quoi faire ....

    Après qu'entends tu par "acceptable" ? Y a t il une solution mieux qu'acceptable ?

  4. #4
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Citation Envoyé par garthos Voir le message
    En fait en ce qui me concerne j'y vois pas mal d’intérêt le premier c'est d'avoir une meilleur séparation de mes couche.
    La séparation peut être aussi nettement marquée dans le code lui-même. Regarde un projet Play!, les packages marquent clairement cette séparation. Il n'est pas nécessairement utile de le faire via des modules Maven !

    Citation Envoyé par garthos Voir le message
    Le 2ème interet est que j'envisage à plus ou moins court terme de séparer en 2 webapp la partie frontend et la partie backoffice (l'interface d'admin) donc du coup ça me semble assez justifier puisque les 2 webapp utiliseront le même model , les services etc ....
    Là, c'est déjà une meilleure raison

    Citation Envoyé par garthos Voir le message
    L'autre chose c'est aussi pour les déploiement partiel, par exemple j'ai un bug dans un service ou controller , je veux pouvoir déployer le minimum car mon appli commence à être assez grosse (environ 500Mo) et je ne dispose pas toujours d'une connexion internet hyper fiable.
    Je ne suis pas sûr que le déploiement d'un module au sein d'un WAR soit forcément une bonne idée...

    Citation Envoyé par garthos Voir le message
    En fait je suis en train de me creuser la tête pour bien tout séparer !
    Mais je ne sais pas trop quoi faire pour la partie controller Spring car c'est quand même lié à la la webapp.
    Clairement. Pour moi, ça doit faire partie de la couche présentation, donc lié à la webapp.

    Citation Envoyé par garthos Voir le message
    Donc soit je créer un module "jar" pour les controller soit je les met dans mon modules WAR et là ils se retrouveront dans WEB-INF/classes (et cette dernière ne me plait pas trop car je trouve que ça fait un peut anarchique)
    Est-ce le seul fait de retrouver tes .class dans le WEB-INF/classes qui te pose problème ? Ca revient au même. Au pire, il me semble que tu dois pouvoir configurer le plugin war pour qu'il place les .class dans un JAR plutôt que de les exposer dans WEB-INF/classes...

    Citation Envoyé par garthos Voir le message
    En fait je sais pas trop quoi faire ....

    Après qu'entends tu par "acceptable" ? Y a t il une solution mieux qu'acceptable ?
    Acceptable juste dans le sens que c'est une bonne solution. Mais choisir entre la #1 ou la #2, c'est avant tout une question de contexte. Mon point était juste de dire qu'il est sans doute inutile de séparer son code dans des modules différents si ce n'est que pour rendre les choses soit disant plus propre, mieux séparées.

  5. #5
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 210
    Points : 83
    Points
    83
    Par défaut
    idéalement il faudrait que l'on puisse produire une appli qui peut aussi être utilisé comme "framework", en fait on veut donner la possibilité d'étendre les fonctionnalité à un tiers , si par exemple tel ou tel fonctionnalité est incomplète ou n'existe tout simplement pas.
    Désolé je viens de m’apercevoir que j'avais pas préciser ce point.

    En fait on veut que notre appli soit customisable assez facilement, c'est pourquoi on voudrait bien séparé toutes les couches.

Discussions similaires

  1. [Framework] Application Spring MVC , hibernate, Maven, GWT
    Par azur123 dans le forum Spring
    Réponses: 1
    Dernier message: 30/04/2014, 08h46
  2. Problème d'éxecution de mon application Spring MVC avec Tomcat
    Par Eric_beauvais dans le forum Tomcat et TomEE
    Réponses: 0
    Dernier message: 29/10/2013, 20h01
  3. Projet maven multi module et svn
    Par diablerouge2000 dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 08/04/2013, 20h30
  4. Réponses: 0
    Dernier message: 07/04/2013, 21h28
  5. GWT + maven multi-module + eclipse
    Par florianj dans le forum GWT et Vaadin
    Réponses: 0
    Dernier message: 08/01/2013, 17h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo