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 :

Explication d'une partie de POM


Sujet :

Maven Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 179
    Par défaut Explication d'une partie de POM
    Bonjour,

    j'ai ceci dans un POM :

    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
     
    ...
    <build>
        <sourceDirectory>src/main/flex</sourceDirectory>
        <testSourceDirectory>src/test/flex</testSourceDirectory>
        <plugins>
            <plugin>
                <groupId>org.sonatype.flexmojos</groupId>
                <artifactId>flexmojos-maven-plugin</artifactId> 
                <version>4.0-RC2</version>
                <extensions>true</extensions>
            </plugin>
        </plugins>
    </build>
    ...
    Qu'est ce que cela veut dire exactement svp ? J'ai compris comment associer le déclenchement d'un goal d'un plugin sur une phase spécifique avec le tag <phase></phase> ou bien comment lancer un goal automatiquement sur la phase qui lui est associée mais ici il n'y a rien de tel.

    Ce bout de POM (miam) sert t-il juste à surcharger la propriété extensions ?

    Merci de vos réponses

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 179
    Par défaut
    Hum...en fait il fait appel au plugin proprement dit qui lui spécifie le cycle de vie c'est ca ?

  3. #3
    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
    Par défaut
    Dans ce pom, c'est juste la définition et éventuellement la configuration du plugin qui est défini.

    Il faudra donc l'appeler explicitement pour qu'il soit lancé, et dans ce cas, les informations définies dans ce bloc sera considérée lors de l'exécution du plugin.
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 179
    Par défaut
    En fait j'ai un POM complet qui est celui ci :

    Code : 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 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/maven-v4_0_0.xsd">
    	<modelVersion>4.0.0</modelVersion>
     
    	<groupId>com.test</groupId>
    	<artifactId>flexMaven</artifactId>
    	<version>1.0-SNAPSHOT</version>
    	<packaging>swf</packaging>
    	<name>flexMaven</name>
     
    	<pluginRepositories>
    		<pluginRepository>
    			<id>flexmojos</id>
    			<url>http://repository.sonatype.org/content/groups/flexgroup/</url>
    		</pluginRepository>
    	</pluginRepositories>
     
    	<repositories>
    		<repository>
    			<id>flexmojos</id>
    			<url>http://repository.sonatype.org/content/groups/flexgroup/</url>			
    		</repository>
    	</repositories>
     
    	<dependencies>
    		<dependency>
    			<groupId>com.adobe.flex.framework</groupId>
    			<artifactId>flex-framework</artifactId>
    			<version>4.5.1.21328</version>
    			<type>pom</type>
    		</dependency>
     
     
    		<dependency>
    			<groupId>com.adobe.flexunit</groupId>
    			<artifactId>flexunit</artifactId>
    			<version>0.9</version>
    			<type>swc</type>
    			<scope>test</scope>
    		</dependency>
    	</dependencies>
     
    	<build>
    		<sourceDirectory>src/main/flex</sourceDirectory>
    		<testSourceDirectory>src/test/flex</testSourceDirectory>
    		<plugins>
    			<plugin>
    				<groupId>org.sonatype.flexmojos</groupId>
    				<artifactId>flexmojos-maven-plugin</artifactId> 
    				<version>4.0-RC2</version>
    				<extensions>true</extensions>
    			</plugin>
    		</plugins>
    	</build>
     
    </project>
    En lancant un mvn -U compile j'obtiens l'erreur suivante :

    [ERROR] Failed to execute goal org.sonatype.flexmojos:flexmojos-maven-plugin:4.0-RC2:compile-swf (default-compile-swf) on project flexMaven: The plugin org.sonatype.flexmojos:flexmojos-maven-plugin:4.0-RC2 requires Maven version 3.0.3 -> [Help 1]
    Ici, peut importe l'erreur à la limite, je cherche juste à comprendre comment et pourquoi le goal compile-swf est il lancé ?

    C'est le plugin flexmojos-maven-plugin qui a bindé ses goals dans les phases du cycle de vie et l'appel de ce plugin dans le <build></build> appelle automatiquement ses goals sur chaque phase du cycle de vie lancée en fait c'est ca ?

    Merci

  5. #5
    Membre chevronné Avatar de Mandraxx
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2011
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 182
    Par défaut
    Bonjour,

    Dans ta déclaration, le terme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <extension>true</extension>
    spécifie que le plug-in en question (flexmojos-maven-plugin) va étendre le MAVEN Core.

    Il y a des chances en l’occurrence que cette extension soit la déclaration du
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <packaging>swf</packaging>
    En effet, il ne me semble pas que ce packaging soit reconnu en natif par MAVEN.

    Je ne serait donc pas étonné que si tu ouvres (avec un utilitaire type 7-zip) le jar correspondant à ce plug-in dans ton repo local, tu trouves un fichier META-INF/plexus/components.xml qui décrive un LifecycleMapping dont le role-hint est swf.

    Dans ce fichier, tu verras que les diverses phase du cycle de vie MAVEN sont mappés sur des goals => c'est comme ça que MAVEN sait qu'il faut lancer un compile-swf en phase de compilation etc.

    Je tempère tout de même mes propos : je peux garantir ce fonctionnement sur MAVEN 2.x, il est compris par MAVEN 3.x (rétro-compatibilité oblige) mais comme Plexus a été abandonné dans la nouvelle architecture du framework, il se peut que ce fichier soit ailleurs et nommé autrement....

    @+

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 179
    Par défaut
    Merci pour cette réponse détaillée

    Citation Envoyé par Mandraxx Voir le message
    Dans ce fichier, tu verras que les diverses phase du cycle de vie MAVEN sont mappés sur des goals => c'est comme ça que MAVEN sait qu'il faut lancer un compile-swf en phase de compilation etc.
    apparemment ce n'est pas/plus dans ce fichier où sont détaillés les mappings goals/phase.

    Le voici :

    Code : 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
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
     
    <?xml version="1.0" encoding="UTF-8"?>
    <component-set>
      <components>
        <component>
          <role>org.sonatype.flexmojos.license.LicenseCalculator</role>
          <role-hint>default</role-hint>
          <implementation>org.sonatype.flexmojos.license.DefaultLicenseCalculator</implementation>
          <description />
          <isolated-realm>false</isolated-realm>
        </component>
        <component>
          <role>org.apache.maven.artifact.handler.ArtifactHandler</role>
          <role-hint>air</role-hint>
          <implementation>org.sonatype.flexmojos.plugin.artifacthandler.AirArtifactHandler</implementation>
          <description />
          <isolated-realm>false</isolated-realm>
        </component>
        <component>
          <role>org.apache.maven.artifact.handler.ArtifactHandler</role>
          <role-hint>swf</role-hint>
          <implementation>org.sonatype.flexmojos.plugin.artifacthandler.SwfArtifactHandler</implementation>
          <description />
          <isolated-realm>false</isolated-realm>
        </component>
        <component>
          <role>org.apache.maven.artifact.handler.ArtifactHandler</role>
          <role-hint>swc</role-hint>
          <implementation>org.sonatype.flexmojos.plugin.artifacthandler.SwcArtifactHandler</implementation>
          <description />
          <isolated-realm>false</isolated-realm>
        </component>
        <component>
          <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
          <role-hint>swf</role-hint>
          <implementation>org.sonatype.flexmojos.plugin.lifecyclemapping.SwfLifecycleMapping</implementation>
          <description />
          <isolated-realm>false</isolated-realm>
        </component>
        <component>
          <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
          <role-hint>swc</role-hint>
          <implementation>org.sonatype.flexmojos.plugin.lifecyclemapping.SwcLifecycleMapping</implementation>
          <description />
          <isolated-realm>false</isolated-realm>
        </component>
        <component>
          <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
          <role-hint>air</role-hint>
          <implementation>org.sonatype.flexmojos.plugin.lifecyclemapping.AirLifecycleMapping</implementation>
          <description />
          <isolated-realm>false</isolated-realm>
        </component>
        <component>
          <role>org.apache.maven.AbstractMavenLifecycleParticipant</role>
          <role-hint>ChecksumEnforcer</role-hint>
          <implementation>org.sonatype.flexmojos.plugin.ChecksumEnforcerMavenExtension</implementation>
          <description />
          <isolated-realm>false</isolated-realm>
        </component>
        <component>
          <role>org.sonatype.flexmojos.plugin.test.scanners.FlexClassScanner</role>
          <role-hint>disabled</role-hint>
          <implementation>org.sonatype.flexmojos.plugin.test.scanners.DisableFlexClassScanner</implementation>
          <description />
          <isolated-realm>false</isolated-realm>
        </component>
        <component>
          <role>org.sonatype.flexmojos.plugin.test.scanners.FlexClassScanner</role>
          <role-hint>as3Content</role-hint>
          <implementation>org.sonatype.flexmojos.plugin.test.scanners.AS3ContentFlexClassScanner</implementation>
          <description />
          <isolated-realm>false</isolated-realm>
        </component>
        <component>
          <role>org.sonatype.flexmojos.plugin.test.scanners.FlexClassScanner</role>
          <role-hint>link-report</role-hint>
          <implementation>org.sonatype.flexmojos.plugin.test.scanners.LinkReportFlexClassScanner</implementation>
          <description />
          <isolated-realm>false</isolated-realm>
        </component>
        <component>
          <role>org.sonatype.flexmojos.plugin.test.scanners.FlexClassScanner</role>
          <role-hint>all</role-hint>
          <implementation>org.sonatype.flexmojos.plugin.test.scanners.AllFlexClassScanner</implementation>
          <description />
          <isolated-realm>false</isolated-realm>
        </component>
        <component>
          <role>org.apache.maven.AbstractMavenLifecycleParticipant</role>
          <role-hint>DependencyOrder</role-hint>
          <implementation>org.sonatype.flexmojos.plugin.DependencyOrderMavenExtension</implementation>
          <description />
          <isolated-realm>false</isolated-realm>
        </component>
        <component>
          <role>org.sonatype.flexmojos.truster.FlashPlayerTruster</role>
          <role-hint>default</role-hint>
          <implementation>org.sonatype.flexmojos.truster.DefaultFlashPlayerTruster</implementation>
          <description />
          <isolated-realm>false</isolated-realm>
        </component>
      </components>
    </component-set>
    J'ai regardé tous les fichiers xml de mon répertoire META-INF sans trouver ce mapping. Il est disponible ici pour celui qui a une âme charitable

    Sinon sur la documentation générée par maven sur le plugin, peut on se fier à 100% aux informations des goals ? Par exemple sur le goal flexmojos:compile-swf il est marqué :

    Binds by default to the lifecycle phase: compile.
    donc ok ce goal est lié à la phase compile mais est ce qu'il est toujours marqué pour chaque goal à chaque phase du cycle de vie il est lié ? La doc est générée grâce aux annotations Java @phase...?

    Est il possible d'avoir un récapitulatif (tableau ou autre) de l'association des goals avec les phase pour chaque plugin ou doit on regarder chaque goal un par un ?

    Je sais pas si c'est très clair, n'hésitez pas à me poser des questions

    Merci

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    C'est probablement org.sonatype.flexmojos.plugin.artifacthandler.SwfArtifactHandler qui attache les goals au lifecycle de manière logicielle et non par configuration

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 179
    Par défaut
    Ok merci pour la précision

    Je peux taguer en d'autant que j'ai un autre post à ouvrir

    Merci encore

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

Discussions similaires

  1. Explication d'une partie de la feuille de style
    Par matimat2k4 dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 10/05/2008, 00h41
  2. Réponses: 4
    Dernier message: 18/05/2004, 13h58
  3. [CVS]Gestion de 2 versions avec une partie commune
    Par Gromitou dans le forum EDI et Outils pour Java
    Réponses: 4
    Dernier message: 19/02/2004, 14h32
  4. comment remplacer une partie de texte dans un champs
    Par patlapi dans le forum Paradox
    Réponses: 4
    Dernier message: 20/11/2003, 14h38
  5. selectionner une partie d'un TImage
    Par bidochon dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/02/2003, 19h08

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