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 :

Problème avec la récupération de modules par CVS puis de leur compilation


Sujet :

Maven Java

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Problème avec la récupération de modules par CVS puis de leur compilation
    Bonjour,

    Je suis actuellement en train de remplacer mes vieux scripts de compilation par Maven, je m'en sors plutot pas mal, cependant j'ai un petit soucis :

    Avec mes scripts actuels, en une commande, je récupère un projet donné via CVS (checkout) et le compile.

    J'essai de faire pareil avec Maven:
    J'ai associé le checkout de scm a la phase validate
    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
     
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-scm-plugin</artifactId>
            <extensions>true</extensions>
            <configuration>
                <providerImplementations>
                     <cvs>cvs_native</cvs>
              </providerImplementations>
              <checkoutDirectory>.</checkoutDirectory>
            </configuration>
         <executions>
              <execution>
                <phase>validate</phase>
                <goals>
                  <goal>checkout</goal>
                </goals>
              </execution>
            </executions>
         </plugin>

    J'y ai intégrer les modules a compiler
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ...
    <modules>
        <module>module1</module>
        <module>module2</module>
    ...
    </modules>
    ...
    Le hic, c'est que ces modules doivent être récupérés du CVS, et que Maven à la phase validate cherche les modules (ainsi que leur pom par la suite) qui ne sont pas encore existant avant de faire le checkout...

    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
     
    [INFO] Scanning for projects...
    [INFO] ------------------------------------------------------------------------
    [ERROR] FATAL ERROR
    [INFO] ------------------------------------------------------------------------
    [INFO] Error building POM (may not be this project's POM).
     
     
    Project ID: unknown
     
    Reason: Could not find the model file 'B:\MAVEN-KERNEL\module1'. for project
    unknown
     
     
    [INFO] ------------------------------------------------------------------------
    [INFO] Trace
    org.apache.maven.reactor.MavenExecutionException: Could not find the model file
    'B:\MAVEN-KERNEL\module1'. for project unknown
            at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java:378)
    Y a t-il une subtilité que je n'ai pas saisie ou suis obligé de me coltiné 2 pom, un pour le checkout et un pour la compile en elle meme?

    Merci de vos réponses !

  2. #2
    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
    salut,

    Tu dois pouvoir y arriver avec un seul pom :
    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
     
    <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.octo</groupId>
      <artifactId>test</artifactId>
      <packaging>pom</packaging>
      <version>0.0.1-SNAPSHOT</version>
      <profiles>
        <profile>
          <id>build</id>
          <activation>
            <activeByDefault>true</activeByDefault>
          </activation>
          <modules>
            <module>module1</module>
            <module>module2</module>
          </modules>
        </profile>
        <profile>
          <id>checkout</id>
          <build>
            <plugins>
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-scm-plugin</artifactId>
                <extensions>true</extensions>
                <configuration>
                  <providerImplementations>
                    <cvs>cvs_native</cvs>
                  </providerImplementations>
                  <checkoutDirectory>.</checkoutDirectory>
                </configuration>
                <executions>
                  <execution>
                    <phase>validate</phase>
                    <goals>
                      <goal>checkout</goal>
                    </goals>
                  </execution>
                </executions>
              </plugin>
            </plugins>
          </build>
        </profile>
      </profiles>
    </project>
    Par contre il te faudra lancer deux commandes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    mvn validate -Pcheckout
    mvn install

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci de ta réponse!

    J'ai trouvé une autre solution aussi qui pourrait intéresser :

    Mon projet sur CVS est "Mavenisé", il possède un pom père et des modules avec leur pom fils.

    Pom père:
    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
     
    <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>group.id</groupId>
      <version>1.0-SNAPSHOT</version>
      <artifactId>projet</artifactId>
      <packaging>pom</packaging>
      <name>projet</name>
     
     
      <modules>
        <module>module1</module>
        <module>module2</module>
      </modules>
     
      <build>
      </build>
     
    </project>

    Un des pom fils:
    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
     
    <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>group.id</groupId>
    	<artifactId>module2</artifactId>
    	<packaging>jar</packaging>
    	<version>1.0-SNAPSHOT</version>
    	<name>module2</name>
    	<url>http://maven.apache.org</url>
     
       <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.5</version>
        </dependency>
      </dependencies>
     
      <parent>
            <groupId>group.id</groupId>
            <artifactId>projet</artifactId>
            <version>1.0-SNAPSHOT</version>
            <relativePath>../pom.xml</relativePath>
      </parent>
     
    	<build>
    		<plugins>
    			<!-- tests unitaires -->
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-surefire-plugin</artifactId>
    			</plugin>
     
    		</plugins>
               <finalName>module2</finalName>
    	</build>
    </project>

    Et en gros je fais un scm:bootstrap avec un pom générique, j'ai passé en variable le goal que je veux atteindre pour le projet:

    Le pom générique:
    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
     
    <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>group.id</groupId>
      <version>1.0-SNAPSHOT</version>
      <artifactId>compilateur</artifactId>
      <packaging>pom</packaging>
      <name>compilateur</name>
     
      <scm>
         <connection>scm:cvs:ext:user@adr.fr:/cvs/rep/foo/:projet</connection>
     
      </scm> 
     
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-scm-plugin</artifactId>
            <extensions>true</extensions>
            <configuration>
              <providerImplementations>
                <cvs>cvs_native</cvs>
              </providerImplementations>
       	  <goals>${action}</goals>
            </configuration>
         </plugin>
     
          <plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-compiler-plugin</artifactId>
    				<configuration>
    					<source>1.5</source>
    					<target>1.5</target>
    				</configuration>
    	</plugin>
     
        </plugins>
      </build>
     
     
     
     
    </project>

    Et je lance la commande toute simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mvn scm:bootstrap -Daction=package

Discussions similaires

  1. Problème avec l'envoi d'entêtes par header
    Par kendot dans le forum Langage
    Réponses: 3
    Dernier message: 13/01/2008, 16h44
  2. Problème avec un Insert et valeur par default
    Par jaffael dans le forum Bases de données
    Réponses: 6
    Dernier message: 17/12/2007, 17h33
  3. [MySQL] problème avec la récupération des valeurs des variables POST
    Par Jasmine80 dans le forum PHP & Base de données
    Réponses: 20
    Dernier message: 11/05/2007, 16h08
  4. Réponses: 2
    Dernier message: 26/04/2007, 11h58
  5. Réponses: 23
    Dernier message: 21/12/2006, 22h47

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