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 :

Comment gérer des versions différentes des plugins ?


Sujet :

Maven Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de kkt8
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 472
    Par défaut Comment gérer des versions différentes des plugins ?
    Bonjour,

    J'ai mis en place Maven pour générer mon update site, qui est composé de plusieurs plugins.
    Si tout ce beau monde à le même numéro de version : plugins, feature, et pom tout va bien !
    si d'aventure un plugin et son feature a un numéro de version différent des autres ... ça ne va plus !

    Comment je veux différencier ce numéro de version de plugin et le numéro de version du pom ?
    D'avance merci

  2. #2
    Membre Expert
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Par défaut
    Normalement chaque plugin a grosso modo son propre cycle de vie et donc son propre numéro de version qui n'est pas dépendant des autres.

    Tu as un exemple précis (comme ton pom.xml) qu'on puisse t'aider?

  3. #3
    Membre éclairé Avatar de kkt8
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 472
    Par défaut
    Bonjour eulbobo !

    alors voici mon pom parent :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
     
      <groupId>com.bla.bla.bla</groupId>
      <artifactId>eclipseplugin</artifactId>
      <version>1.3.0-SNAPSHOT</version>
      <packaging>pom</packaging>
     
      <properties>
      	<version>1.3.0</version>
      </properties>
     
      <repositories>
      	  	<repository>
        		<id>eclipse-kepler</id>
    			<layout>p2</layout>
    			<url>http://download.eclipse.org/releases/kepler</url>
      		</repository> 		
      </repositories>
     
      <modules>
      	<module>../fr.bli.bli.a</module>
      	<module>../fr.bli.bli.b</module>
      	<module>../fr.bli.bli.c</module>
      	<module>../fr.bli.bli.d</module>
        	<module>../fr.bli.bli.feature.a</module>
      	<module>../fr.bli.bli.feature.b</module>
      	<module>../fr.bli.bli.feature.c</module>
      	<module>../fr.bli.bli.feature.d</module>
      	<module>../fr.bli.bli.updatesite</module>
     
      </modules>
     
      <build>
        	<plugins>
          		<plugin>
            		<groupId>org.eclipse.tycho</groupId>
            		<artifactId>tycho-maven-plugin</artifactId>
            		<version>0.19.0</version>
            		<extensions>true</extensions>  
            		<configuration>
        				<source>1.7</source>
        				<target>1.7</target>
    				</configuration>        		    	
          		</plugin>
        	</plugins>
     
        	<pluginManagement>
    	    	<plugins>
    	    		<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
    	    		<plugin>
    	    			<groupId>org.eclipse.m2e</groupId>
    	    			<artifactId>lifecycle-mapping</artifactId>
    	    			<version>1.0.0</version>
    	    			<configuration>
    	    				<lifecycleMappingMetadata>
    	    					<pluginExecutions>
    	    						<pluginExecution>
    	    							<pluginExecutionFilter>
    	    								<groupId>org.eclipse.tycho</groupId>
    	    								<artifactId>
    	    									tycho-compiler-plugin
    	    								</artifactId>
    	    								<versionRange>
    	    									[0.19.0,)
    	    								</versionRange>
    	    								<goals>
    	    									<goal>compile</goal>
    	    								</goals>
    	    							</pluginExecutionFilter>
    	    							<action>
    	    								<ignore></ignore>
    	    							</action>
    	    						</pluginExecution>
    	    					</pluginExecutions>
    	    				</lifecycleMappingMetadata>
    	    			</configuration>
    	    		</plugin>
    	    	</plugins>
    		</pluginManagement>
    	</build>
     
    </project>

    et un exemple d'un pom enfant feature:
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0" encoding="UTF-8"?>
    <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <modelVersion>4.0.0</modelVersion>
      <parent>
        <groupId>com.bla.bla.bla</groupId>
        <artifactId>eclipseplugin</artifactId>
        <version>1.3.0-SNAPSHOT</version>
        <relativePath>../eclipseplugin/pom.xml</relativePath>
      </parent>
      <artifactId>fr.bli.bli.feature.a</artifactId>
      <packaging>eclipse-feature</packaging>
    </project>

    et un exemple de pom plugin :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    <?xml version="1.0" encoding="UTF-8"?>
    <project
    	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
    	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    	<modelVersion>4.0.0</modelVersion>
    	<parent>
    		<groupId>com.bla.bla.bla</groupId>
    		<artifactId>eclipseplugin</artifactId>
    		<version>1.3.0-SNAPSHOT</version>
    	  	<relativePath>../eclipseplugin/pom.xml</relativePath>
    	</parent>
    	<artifactId>fr.bli.bli.a</artifactId>
    	<packaging>eclipse-plugin</packaging>
    	<build>
    		<plugins>
    			<plugin>
    				<artifactId>maven-antrun-plugin</artifactId>
    				<version>1.1</version>
    				<inherited>false</inherited>
    			</plugin>
    		</plugins>
    		<pluginManagement>
    			<plugins>
    				<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
    				<plugin>
    					<groupId>org.eclipse.m2e</groupId>
    					<artifactId>lifecycle-mapping</artifactId>
    					<version>1.0.0</version>
    					<configuration>
    						<lifecycleMappingMetadata>
    							<pluginExecutions>
    								<pluginExecution>
    									<pluginExecutionFilter>
    										<groupId>
    											org.apache.maven.plugins
    										</groupId>
    										<artifactId>
    											maven-antrun-plugin
    										</artifactId>
    										<versionRange>
    											[1.1,)
    										</versionRange>
    										<goals>
    											<goal>run</goal>
    										</goals>
    									</pluginExecutionFilter>
    									<action>
    										<ignore></ignore>
    									</action>
    								</pluginExecution>
    							</pluginExecutions>
    						</lifecycleMappingMetadata>
    					</configuration>
    				</plugin>
    			</plugins>
    		</pluginManagement>
    	</build>
    </project>

    tout (plugin et feature) est pour le moment en version 1.3.0.qualifier si j'en met un à 1.4.0.qualifier (fr.bli.bli.feature.a et fr.bli.bli.a) j'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    [ERROR] Cannot resolve project dependencies:
    [ERROR]   Software being installed: fr.bli.bli.feature.a.feature.group 1.3.0.qualifier
    [ERROR]   Missing requirement: fr.bli.bli.feature.a.feature.group 1.3.0.qualifier requires fr.bli.bli.feature.b.feature.group [1.3.0,1.3.1)' but it could not be found
    [ERROR]
    Merci

  4. #4
    Membre Expert
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Par défaut
    Alors, pour le coup, on parle de version de module dans un projet maven MultiModule : techniquement, le problème ne vient pas des plugins utilisés par maven (même si tu es toi même en train de développer un plugin)


    Dans un projet multimodule, par convention, tous les modules héritent du numéro de version du pom parent. Ils sont tous liés au même endroit, ils ont tous le même numéro de version.
    (De la même façon, il faut éviter de redéclarer une propriété déjà existante, la version de ton projet, c'est 1.3.0-SNAPSHOT, pas 1.3.0 !)

    Si tu essayes d'augmenter la version d'un seul de tes modules, il ne sera plus en phase avec le projet parent, ni avec les autres modules dont il peut dépendre. Si chaque module peut évoluer indépendamment du reste, la gestion multimodule n'est pas la bonne approche : il faudra que tu crées un projet de type "dépendances communes" dont les autres héritent.


    Pour gérer tes version, le plugin release est très bien fait et gère lui même tout seul les numéros de version (en faisant un tag dans ton SCM, un incrémentant toutes les version, en déployant dans ton repo local, et en déployant dans ton repo distant si tu en as un)

  5. #5
    Membre éclairé Avatar de kkt8
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 472
    Par défaut
    Bonjour,

    Qu'est-ce que tu entends par "Pour gérer tes version, le plugin release est très bien fait et gère lui même tout seul les numéros de version" ?
    C'est quoi le pluginrelease ?
    Je débute avec Maven et j'ai réutilisé des pom d'un collègue ...

    Merci

  6. #6
    Membre éclairé Avatar de kkt8
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 472
    Par défaut
    rebonjour !
    a priori d'après ce que j'ai lu ce que tu proposes est lié avec un SCM, alors que là ce n'est pas le cas.
    Je veux juste gérer la version de mes plugins indépendament les uns des autres, car ils n'évoluent pas forcément tous à la même vitesse ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment générer des modèles dans des assemblies différentes
    Par lbensch dans le forum Entity Framework
    Réponses: 3
    Dernier message: 20/10/2010, 11h09
  2. [CLI] Comparer 2 répertoires dans des versions différentes
    Par Empty_body dans le forum CVS
    Réponses: 1
    Dernier message: 24/11/2008, 13h55
  3. Réponses: 2
    Dernier message: 30/10/2008, 18h30
  4. Migration de base Mysql avec des versions différentes
    Par Papouz dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 20/02/2007, 18h20
  5. Réponses: 6
    Dernier message: 29/11/2006, 11h56

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