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 :

Mvn deploy => Ecrase la release si elle existe deja


Sujet :

Maven Java

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 30
    Points : 15
    Points
    15
    Par défaut Mvn deploy => Ecrase la release si elle existe deja
    Voila, je me suis rendu compte que si on faisait un mvn deploy sur un projet en version 0.0.x qui avait deja été deployé, on ecrase la premiere version pour mettre la nouvelle.

    Je trouve cela dangereux.
    Y a t il une option pour empecher cela.
    j'ai regardé dans le plusgin : maven-deploy-plugin mais je n'ai rien trouvé.

    Merci de votre aide.

  2. #2
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 108
    Points : 3 203
    Points
    3 203
    Par défaut
    si les numero de version sont les memes, je trouve tout a fait normal qu'il ecrase l'ancienne. en quoi est ce dangereux ?

    si tu voulaid gardé un historique il fallait le faire en amont avec un outil comme HG, SVN ou CVS.

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 30
    Points : 15
    Points
    15
    Par défaut
    Ca se discute non ?

    Normalement, une version est unique. quand tu a "figer" une version et généré le jar, il n'y a pas de raison de l'écraser pour généré un jar avec un contenu différent.

    La seul raison d'écraser une rélease publiée sur un repository global/inhouse c'est parce que il y a eu une erreur de manip, le développeur à oublier de modifier la version dans son pom.xml avant de vouloir déployé son projet avec des modifs

    Imagine:

    Un développeur A met à disposition un JAR en Version 0.0.3 à 8h30
    un développeur B qui en a besoin récupère donc la V0.0.3 à 9h00.

    Le dev A fait une modif et republie son jar avec la meme version mais des class différente à 13h00.
    Un Dev C qui en a besoin a 14h30 récupere ce JAR (tj en version 0.0.3).

    On arrive dans un cas ou pour une meme version, il y a deux jar différents.



    Je trouve donc normal , qu'une fois que la version est publié/déployé on ne puisse pas l'ecrasé => cela pour assuré Une version = un JAR unique (la seul solution serai alors d'aller sur le serveur et de le supprimé directement)

  4. #4
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 108
    Points : 3 203
    Points
    3 203
    Par défaut
    si tu applique ce que tu viens de dire, je pense que tu t'y prend mal avec maven.

    Je suis d'accord sur le fait qu'une version devrait etre unique. Si vous deployez des jar differents sous le meme numero de version c'est que vous ne vous etes pas organisé correctement (manque de communication?).

    Mais 2 deploy du meme jar dans la meme journée ? c'est que tes versions ne sont pas de vrai versions mais plutot des SNAPSHOT .

    Un deploy de vrai version c'est rare, une fois par semaine, par mois, voir seulement 2/3 fois par an pour les gros projets.

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 30
    Points : 15
    Points
    15
    Par défaut
    Lol non justement je pense qu'on ai d'accord.

    Moi je parle d'un cas particulier qui est du a une erreur justement.

    En théorie, on est d'accord qu'on ne doit jamais faire de déploy sur un projet avec la meme version mais du contenu différente (sauf SNAPSHOT mais la je parle bien de release)

    Moi je parle d'une erreur de manipulation.
    c'est a dire, par mégarde ou par oublie de modification du pom.xml apres une release, on en arrive a faire un deploy sur du contenu différente mais avec une version identique.

    la ou je suis étoné c'est que rien ne t'en protege. alors qu'il suffirai que maven, au moment du déploy d'une release vérifie qu'il n'y a pas déjà une release de même version deja deployé. (je sais ps si je suis clair lol)

    Apres je suis tout a fait d'accord qu ca ne doit jamais arrivé dans un fonctionnement normal.



    EDIt : Je pense que c'est mon exemple qui ta troublé.Pour le compléter:
    Ici, l'erreur c'est de ne pas avoir modifier le pom.xml (0.0.3 en 0.0.4-SNAP) après le premier deploy.

  6. #6
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 197
    Points : 248
    Points
    248
    Par défaut
    Le plugin release est censé eviter en partie cela puisqu'il gère a la place du developpeur le changement des versions dans le pom lorsqu'il fait la release.
    Le pom contenant la version sans -SNAPSHOT n'existe que dans le gestionnaire de versions et dans le répertoire target du build. Pour ecraser la version RELEASE il faut donc le faire exprès en recupérant le tag sur le gestionnaire de versions ou en allant modifier et republier le code se trouvant dans le target du projet ...

  7. #7
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 30
    Points : 15
    Points
    15
    Par défaut
    Je suis d'accord sauf que moi je (enfin mes supérieurs) ne veulent pas utiliser ce plugin.

    Enfin donc tout ca pour dire qu'il n'existe pas de moyen pour empecher d'ecraser une release.

    Merci d'avoir participé

  8. #8
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 197
    Points : 248
    Points
    248
    Par défaut
    C'est effectivement bien dommage et dangereux (lorsque c'est possible techniquement). Les controles n'existent pas malheureusement sur les serveurs ou maven lui-même.
    Il reste peut etre le moyen d'implementer le controle si le serveur est en apache+webdav en trouvant une config de secu pour eviter l'ecrasement.

  9. #9
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 172
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Points : 1 524
    Points
    1 524
    Par défaut
    Le contrôle ne devrait pas être compliqué à implémenter au niveau de maven-artifact.
    Ouvre une anomalie dans Jira

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/12/2013, 16h45
  2. mvn:deploy marche, mais pas release:perform
    Par jeb001 dans le forum Maven
    Réponses: 1
    Dernier message: 19/01/2011, 09h37
  3. [Hudson] Faire un MVN Deploy depuis Hudson
    Par psgman113 dans le forum Intégration Continue
    Réponses: 1
    Dernier message: 11/06/2010, 22h16
  4. [Maven 2] Avec archiva : mvn deploy
    Par BiM dans le forum Maven
    Réponses: 3
    Dernier message: 03/09/2009, 11h10
  5. effacer une table que si elle existe ?
    Par soniaSQL dans le forum Requêtes
    Réponses: 2
    Dernier message: 25/06/2003, 14h55

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