2011-06-19 2 views
1

J'ai un petit problème avec la balise scm dans mon fichier pom.xml.Où a placé l'étiquette scm?

Mon architecture du projet est comme ceci:

Parent 
Submodule1 
Submodule2 
reactor 

Parent est le projet qui détiennent toutes les configurations de plugins Maven, ect la version librairies. C'est le parent du projet de réacteur qui est le parent de tous les sous-modules. Reactor est un fichier pom.xml qui contient des étiquettes pour compiler tous les sous-modules.

Je voudrais mettre la balise scm sur le pom.xml parent car c'est le pom.xml supérieur. Mais je reçois une erreur quand je veux faire une "release mvn: prepare". Donc je mets la balise scm dans le réacteur pom.xml et ça marche.

C'est bon pour moi, ça marche :) mais je ne comprends pas pourquoi je dois mettre l'étiquette scm dans le réacteur pom.

Quelqu'un peut-il m'expliquer ce comportement?

Merci.

Edit:

Voici la structure du dossier:

root 
    parent 
    pom.xml (parent) 
    submodule1 
    pom.xml 
    submodule2 
    pom.xml 
    pom.xml (reactor) 

Voici la partie intéressante du réacteur pom:

<parent> 
    <groupId>groupId</groupId> 
    <artifactId>parent</artifactId> 
    <relativePath>./parent/pom.xml</relativePath> 
    <version>1.0.2-SNAPSHOT</version> 
</parent> 

<modules> 
    <module>parent</module> 
    <module>submodule1</module> 
     <module>submodule2</module> 
</modules> 

Enfin, est l'erreur ici pour la libération : prepare:

[INFO] Un possibilité de baliser SCM Message du fournisseur: La commande svn tag a échoué. Sortie de commande: svn: Path « http://10.211.55.4/svn/trunk/reactor » n'existe pas dans la révision 112

+0

Quel genre d'erreur avez-vous eu? (Message?) Pouvez-vous donner la structure du dossier avec les emplacements du pom? Comment avez-vous fait les relations du pom (via parent?) A quoi ressemble votre réacteur? (Contient ...? – khmarbaise

Répondre

1

première exigence est que le tronc, les balises et les branches dans le dossier SVN existe que j'assuem mais vous devez définir la partie scm uniquement dans le réacteur et non dans le parent.

root 
    +-- pom.xml (reactor) 
    +-- parent 
    !  +-- pom.xml (parent) 
    +-- submodule1 
    !  +-- pom.xml 
    +-- submodule2 
      +-- pom.xml 

En outre, vous devez définir le maven-release-plugin (réacteur) aussi bien avec vrai.

La gestion par défaut d'une telle situation est que Maven fera un changement relatif des chemins SVN. Cela produira des problèmes comme vous l'avez fait. Donc, vous devez mettre l'information dans le réacteur pom pas dans le pom parent. Très important est d'avoir seulement une seule configuration.

En outre, je recommanderais d'enlever le parent et de mettre l'information dans le réacteur, car vous auriez des problèmes pendant la phase de génération du site.

root 
    +-- pom.xml (parent) 
    +-- submodule1 
    !  +-- pom.xml 
    +-- submodule2 
      +-- pom.xml