version mvn: préparer ne pas commettre les modifications sur pom.xml

J’essaie de publier un plugin Jenkins ( stashNotifier ) avec Maven et de faire face à un problème avec le plug-in de la version.

mvn clean release:prepare 

s’exécute sans erreur, mais ne parvient pas à valider le fichier pom.xml modifié dans mon référentiel git local. Même si cela marque le HEAD de la twig sur laquelle je tente de publier la version 1.0.2. Voici à quoi ressemble ma twig locale avant de préparer la sortie

 * df60768 (HEAD, origin/develop, develop) upgraded parent pom to version 1.498 * 792766a added dissortingbution management section to pom.xml and amended readme.md 

et voici à quoi il ressemble après

 * df60768 (HEAD, tag: stashNotifier-1.0.2, origin/develop, develop) upgraded parent pom to version 1.498 * 792766a added dissortingbution management section to pom.xml and amended readme.md 

Malheureusement, le fichier pom.xml contient déjà la version de développement suivante, qui à son tour provoque une version ultérieure: exécutez pour publier cette version de capture instantanée.

À partir de la sortie de la commande de maven, on dirait qu’il omet la commande git commit:

 [INFO] Checking in modified POMs... [INFO] Executing: /bin/sh -c cd /Users/gruetter/Dropbox/stashNotifier && git add -- pom.xml [INFO] Working directory: /Users/gruetter/Dropbox/stashNotifier [INFO] Executing: /bin/sh -c cd /Users/gruetter/Dropbox/stashNotifier && git status [INFO] Working directory: /Users/gruetter/Dropbox/stashNotifier [INFO] Tagging release with the label stashNotifier-1.0.2... [INFO] Executing: /bin/sh -c cd /Users/gruetter/Dropbox/stashNotifier && git tag -F /var/folders/dr/xxbtyycs1z9dl2_snlj87zrh0000gn/T/maven-scm-678409272.commit stashNotifier-1.0.2 [INFO] Working directory: /Users/gruetter/Dropbox/stashNotifier [INFO] Executing: /bin/sh -c cd /Users/gruetter/Dropbox/stashNotifier && git push git@github.com:jenkinsci/stashnotifier-plugin.git stashNotifier-1.0.2 [INFO] Working directory: /Users/gruetter/Dropbox/stashNotifier [INFO] Executing: /bin/sh -c cd /Users/gruetter/Dropbox/stashNotifier && git ls-files [INFO] Working directory: /Users/gruetter/Dropbox/stashNotifier [INFO] Transforming 'Stash Notifier'... [INFO] Not removing release POMs [INFO] Checking in modified POMs... [INFO] Executing: /bin/sh -c cd /Users/gruetter/Dropbox/stashNotifier && git add -- pom.xml [INFO] Working directory: /Users/gruetter/Dropbox/stashNotifier [INFO] Executing: /bin/sh -c cd /Users/gruetter/Dropbox/stashNotifier && git status [INFO] Working directory: /Users/gruetter/Dropbox/stashNotifier [INFO] Release preparation complete. 

J’utilise maven 3.0.5 (sans –dry-run ou -DpushChanges = false). Voici les parties pertinentes (je pense) de mon pom efficace:

 [...]  scm:git:git://github.com/jenkinsci/stashnotifier-plugin.git scm:git:git@github.com:jenkinsci/stashnotifier-plugin.git https://github.com/jenkinsci/stashnotifier-plugin  [...]   maven.jenkins-ci.org http://maven.jenkins-ci.org:8081/content/repositories/releases/   maven.jenkins-ci.org http://maven.jenkins-ci.org:8081/content/repositories/snapshots   github-pages gitsite:git@github.com/jenkinsci/maven-site.git:plugin-parent/stashNotifier   [...]  [...] 2.2.2 [...]  [...]  [...]   [...]  maven-release-plugin 2.2.2  [...]  [...]  [...]  maven-release-plugin 2.2.2  deploy   [...]   

Qu’est-ce que je fais mal? Merci d’avance pour vos idées!

J’ai résolu le problème de mon côté (en exécutant maven 3.0.5) en mettant à jour la dépendance du fournisseur git scm, et non la version du plug-in de publication:

    maven-release-plugin 2.4.2   org.apache.maven.scm maven-scm-provider-gitexe 1.8.1      

La version git scm 1.8.1 fait correctement la validation de git (testée avec les objectives de préparation et d’annulation).

EDIT: Selon votre environnement, différentes versions de maven-release-plugin et maven-scm-provider-gitexe peuvent être requirejses. Voir les commentaires pour plus de discussion.

J’ai rencontré le même problème, la solution de #richnou fonctionne pour moi (mise à niveau de la dépendance SCM). Il y a le problème créé sur ce problème, voir le lien ci-dessous. Le problème concerne la nouvelle version de Git où “git status” renvoie des messages localisés que le plug-in ne peut pas parsingr. C’est la cause première. Le problème a été résolu dans git scm (version 1.8.1) en utilisant l’option --porcelain de git (qui devrait retourner facilement la sortie analysable), mais après ce correctif, un autre problème a surgi – si la racine du référentiel (balise scm) n’est pas la répertoire de travail, release:prepare échoue toujours. Ce problème semble être résolu dans la version instantanée de Git SCM (pas encore publiée). Cela peut être contourné en copiant la balise scm dans l’enfant pom.

LIBERER-812

SCM-709

maven-release-plugin-and-git-fix

Vous lisez probablement ceci parce que les solutions ci-dessus n’ont pas fonctionné pour vous. J’ai eu le même problème et j’ai essayé tout ce qui est mentionné ici. Mes versions étaient: maven-release-plugin 2.5 et git 1.7.9

La solution qui a fonctionné pour moi a été de rétrograder maven-release-plugin vers la version 2.3.2

    org.apache.maven.plugins maven-release-plugin 2.3.2  true     

Premièrement, les réponses de Richnou et Vasekt ont résolu mon problème. Je pensais que je posterais cette réponse à cause des nouvelles versions qui ont été mentionnées et j’ai pensé qu’il serait bon de donner un exemple supplémentaire en les incluant.

J’exécutais maven release plugin 2.3.2 avec Git 3.3.x sans spécifier la version de dépendance maven scm, à l’origine du problème d’instantané. Pour moi, je viens de mettre à jour vers la dernière version à la fois pour les plug-ins de publication de Maven et la dépendance scm qui étaient comme suit:

  maven-release-plugin 2.5.3   org.apache.maven.scm maven-scm-provider-gitexe 1.9.5    

Cela a bien fonctionné pour moi, les versions de publication ont été téléchargées correctement dans le repository de la version et le cliché a également fonctionné comme prévu.

La mise à niveau du maven-release-plugin vers la version 2.5.2 a été utile (la mise à niveau vers la version 2.5 ne l’a pas fait; elle fonctionne pour certaines personnes, mais pas toutes, éventuellement en fonction d’autres logiciels plus récents sur le système). Je crois que cela attire automatiquement le nouveau fournisseur.

Je me suis juste heurté à ce même problème, et d’après les autres réponses et commentaires, j’ai pensé qu’il s’agissait probablement d’un bug dans le plugin de la version elle-même.

Dans mon cas, j’utilisais la version 2.4 du plugin avec git dans un projet nouveau et presque vide structuré comme suit:

 my-repo.git/ module-parent/ # running the release from here (module-child-1/) # except I hadn't created it yet (module-child-2/) # except I hadn't created it yet 

(Le code source de ce projet peut être vu ici, avant de résoudre le problème: mon projet avec le même problème .)

En regardant les notes de publication pour maven-release-plugin: 2.4.1 , il semblait que MRELEASE-830 avait peut-être une chance de le résoudre.

Je ne suis pas sûr que ce soit effectivement le problème, mais la mise à niveau de mon projet vers la version 2.4.1 du plug-in a résolu le problème pour moi . J’espère que cela résoudra le problème pour vous aussi!

J’ai rencontré ce même problème en utilisant cygwin + maven + git. Il n’a montré aucune erreur mais n’a pas tenté de commettre les modifications de pom, mais s’est arrêté après le git status :

 [INFO] Checking in modified POMs... [INFO] Executing: cmd.exe /X /C "git add -- pom.xml" [INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation [INFO] Executing: cmd.exe /X /C "git status" [INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation [INFO] Tagging release with the label portal-automation-0.3.9... [INFO] Executing: cmd.exe /X /C "git tag -FC:\cygwin64\tmp\maven-scm-1212196933.commit portal-automation-0.3.9" [INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation [INFO] Executing: cmd.exe /X /C "git push git@barrel.mitre.org:org-mitre-caasd/portal-automation.git portal-automation-0.3.9" [INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation [INFO] Executing: cmd.exe /X /C "git ls-files" [INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation [INFO] Transforming 'portal-automation'... [INFO] Not removing release POMs [INFO] Checking in modified POMs... [INFO] Executing: cmd.exe /X /C "git add -- pom.xml" [INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation [INFO] Executing: cmd.exe /X /C "git status" [INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation [INFO] Release preparation complete. 

Comme vous pouvez le voir, pas d’erreurs, tout simplement ne s’est pas engagé après avoir vérifié l’état. Cependant, lorsque j’ai couru depuis l’invite de commande Windows, à la place:

 ... [INFO] Executing: cmd.exe /X /C "git add -- pom.xml" [INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation [INFO] Executing: cmd.exe /X /C "git status" [INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation [INFO] Executing: cmd.exe /X /C "git commit --verbose -FC:\Users\ltheisen\AppData\Local\Temp\maven-scm-2030091036.commit pom.xml" [INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation [INFO] Executing: cmd.exe /X /C "git symbolic-ref HEAD" [INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation [INFO] Executing: cmd.exe /X /C "git push git@barrel.mitre.org:org-mitre-caasd/portal-automation.git master:master" [INFO] Working directory: C:\Users\ltheisen\git\caasd-portal-automation [INFO] Release preparation complete. 

Vous pouvez voir qu’il s’est engagé après avoir vérifié le statut. Je ne sais pas si c’est votre problème, mais cela a fonctionné pour moi.

Notez que cela signifie que vous devez installer msysgit

J’utilise localement Git 1.8.x et j’ai rencontré le même problème:

maven-scm-plugin fait

 $ git add $ git status 

mais non

 $ git commit 

Utiliser une autre machine avec Git 1.7.x m’a aidé à contourner ce problème.

Note: J’ai essayé d’utiliser maven-scm-plugin 1.8.1 ou 1.9, maven-release-plugin 2.4.1 ou 2.4.2.