Maven version plugin - projet d'aperçu nécessaires

j'utilise le plugin de sortie M2 de l'intérieur de Jenkins qui appelle le maven-release-plugin 2.3.2 interne et tout en construisant jette cette erreur : You don't have a SNAPSHOT project in the reactor projects list . Le problème est, mes projets poms do ont leur version comme 1.0.0-SNAPSHOT. Ce qui me manque ?

com.abc.def est le company parent POM , et je fais juste pour mvn release pour utils

<modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>com.abc</groupId>
        <artifactId>def</artifactId>
        <version>1.0.0</version>
    </parent>

    <groupId>com.abc.def</groupId>
    <artifactId>utils</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>utils</name>

et oui, J'ai fait mon Google + de base donc trawl et partout il indique que mes Pom devraient avoir SNAPSHOT comme la version , qui est déjà là. Sauf que mon entreprise mère POM n'est pas snapshot. Peut-être la raison ?

8
demandé sur Pulak Agrawal 2012-11-22 17:28:50

5 réponses

j'ai eu le même problème mais ces solutions n'ont pas fonctionné. Ce blog par Tomek Kaczanowski a frappé le clou sur la tête.

la cause est souvent que la stratégie SVN de Jenkins est définie pour" utiliser svn update autant que possible " ce qui ne nettoie pas l'espace de travail entre les constructions.

lorsque vous tentez de couper une version, Jenkins mettra à jour votre pom et créera des fichiers temporaires. Si la libération échoue, ces pom les mises à jour et les fichiers temporaires ne sont pas nettoyés. Alors, quand vous réparez le pom et essayez de reconstruire, vous obtenez l'erreur You don't have a SNAPSHOT project in the reactor projects list due à ces artefacts funky de L'espace de travail qui embrouille Jenkins.

la solution est de changer votre stratégie Jenkins SVN. Tout ce qui suit devrait fonctionner:

  • toujours vérifier une copie récente
  • émulez clean checkout en supprimant d'abord les fichiers non suivis en versions/ignorés, puis 'svn update'
  • utilisez svn update autant que possible, avec 'svn revert' avant

je vous recommande aussi de vider votre espace de travail Jenkins juste pour être sûr que vous commencez frais.

13
répondu Marquee 2013-06-21 15:15:36

Maître pom n'a pas besoin d'être SNAPSHOT (dans mon entreprise nous avons la même configuration et il fonctionne OK). Cette partie de utils pom est OK aussi loin que je peux le dire, donc peut-être que vous manquez quelque chose d'autre, comme

<scm>
    <developerConnection>scm:${release-scm}</developerConnection>
</scm>

et bien sûr la section maven release plugin dans la définition de construction dans votre POM ? (un long shot, je le sais)

5
répondu tohokami 2012-12-03 05:52:58

j'ai parfois trouvé des problèmes d'orthographe avec le terme:" SNAPSHOT", ce qui conduira essentiellement à la même erreur. comme:

 1. SNAPSOT
 2. SNASHOT
 3. SHNAPSOT

; -) il est donc intéressant de vérifier ce à l'avance.

cool pour la fixation est à utiliser sur le pom parent:

versions:set
4
répondu cschaefer 2013-06-25 19:39:11

en fait, L'espace de travail de Jenkis contient de vieilles versions non instantanées de certains modules. Essayer d'effacer l'espace de travail (=nettoyer et effacer), puis faire une nouvelle version, il obtiendra les versions de correction avec le suffixe-SNAPSHOT

3
répondu InstantKarma 2013-05-24 18:27:21

j'ai trouvé la raison: La dernière société POM Parent n'a pas été ramassé

  1. j'avais clean et -U dans la mvn liste d'arguments. N'a pas fonctionné
  2. puis j'ai nettoyé le dépôt ~/.m2 . N'a pas fonctionné

Ce qui a fonctionné est, dans Jenkins

  1. Goto la Job config page
  2. Aller à Build , cliquez sur Advanced
  3. cochez la case Use private Maven repository
  4. sélectionnez Local to the workspace . Save

je sais que C'est une de ces choses bizarres que Maven a l'habitude de faire pour une raison quelconque. Et comme d'habitude, les erreurs ne sont pas suffisamment informatives/intuitives.

2
répondu Pulak Agrawal 2012-11-27 11:08:22