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 ?
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.
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)
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
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
j'ai trouvé la raison: La dernière société POM Parent n'a pas été ramassé
- j'avais
clean
et-U
dans lamvn
liste d'arguments. N'a pas fonctionné - puis j'ai nettoyé le dépôt
~/.m2
. N'a pas fonctionné
Ce qui a fonctionné est, dans Jenkins
- Goto la
Job config
page - Aller à
Build
, cliquez surAdvanced
- cochez la case
Use private Maven repository
- 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.