Maven-Release-Plugin - SNAPSHOT-Projekt benötigt

8

Ich verwende das M2-Release-Plugin von Jenkins , das intern das maven-release-plugin 2.3.2 aufruft und beim Erstellen dieses Fehlers verursacht: You don't have a SNAPSHOT project in the reactor projects list . Problem ist, meine Projekte poms haben ihre Version als 1.0.0-SNAPSHOT. Was vermisse ich?

com.abc.def ist company parent POM , und ich mache nur für mvn release für utils

%Vor%

Und ja, ich habe meinen grundlegenden Google + SO-Trawl gemacht und überall darauf hingewiesen, dass meine POMs SNAPSHOT als Version haben sollten, die schon da ist. Nur dass meine Firma Eltern POM ist kein Snapshot. Könnte das der Grund sein?

    
Pulak Agrawal 22.11.2012, 13:28
quelle

5 Antworten

13

Ich hatte das gleiche Problem, aber diese Lösungen haben nicht funktioniert. Dieser Blogpost von Tomek Kaczanowski Schlag den Nagel auf den Kopf.

Die Ursache ist oft, dass die Jenkins SVN-Strategie auf "svn update so viel wie möglich verwenden" eingestellt ist, was den Build-Arbeitsbereich zwischen Builds nicht bereinigt.

Wenn Sie versuchen, eine Veröffentlichung zu schneiden, wird Jenkins Ihren Pom aktualisieren und einige temporäre Dateien erstellen. Wenn die Veröffentlichung fehlschlägt, werden diese Pom-Updates und temporären Dateien nicht bereinigt. Wenn Sie also das Pom reparieren und versuchen, es neu zu erstellen, erhalten Sie den You don't have a SNAPSHOT project in the reactor projects list -Fehler aufgrund dieser funkigen Workspace-Artefakte, die Jenkins verwirren.

Die Lösung besteht darin, Ihre Jenkins SVN-Strategie zu ändern. Folgendes könnte funktionieren:

  • schau dir immer eine neue Kopie an
  • emulieren Sie das saubere Auschecken, indem Sie zunächst nicht versionierte / ignorierte Dateien und dann 'svn update'
  • löschen
  • benutze svn update so oft wie möglich, mit 'svn revert' vor dem Update

Ich würde auch empfehlen, dass Sie Ihren Jenkins-Arbeitsbereich ausräumen, nur um sicherzustellen, dass Sie neu anfangen.

    
Marquee 21.06.2013, 15:15
quelle
5

Master pom muss auch nicht SNAPSHOT sein (bei meiner Firma haben wir das gleiche Setup und es funktioniert OK). Dieser Teil von utils pom ist in Ordnung, soweit ich das beurteilen kann, also vermisst du vielleicht etwas anderes, wie

%Vor%

und natürlich der maven release plugin -Abschnitt in der Build-Definition in deinem POM ? (eine lange Schuß ich weiß)

    
tohokami 22.11.2012 15:14
quelle
4

Ich habe manchmal Rechtschreibungsprobleme mit dem Begriff "SNAPSHOT" gefunden, der grundsätzlich auch zum selben Fehler führt. wie:

%Vor%

;-) also lohnt es sich, dies vorab zu überprüfen.

cool für die Fixierung ist auf dem Elternpom zu verwenden:

%Vor%     
cschaefer 25.06.2013 19:39
quelle
3

Tatsächlich enthält der Jenkis-Arbeitsbereich alte nicht-SNAPSHOT-Versionen einiger Module. Versuchen Sie den Arbeitsbereich zu löschen (= zu säubern und zu löschen), machen Sie dann erneut eine Freigabe, er erhält die Korrekturversionen mit dem Suffix -SNAPSHOT

    
InstantKarma 24.05.2013 18:27
quelle
2

Ich habe den Grund gefunden: Die neueste Firma Parent POM wurde nicht abgeholt

  1. Ich hatte clean und -U beide in der mvn Argumentliste. Hat nicht funktioniert
  2. Dann habe ich das Repository ~/.m2 bereinigt. Hat nicht funktioniert

Was funktioniert hat, ist in Jenkins

  1. Gehe zur Job config Seite
  2. Gehe zu Build , klicke auf Advanced
  3. Aktivieren Sie das Kontrollkästchen Use private Maven repository
  4. Wählen Sie Local to the workspace . %Code%

Ich weiß, das ist eines dieser seltsamen Dinge, die Maven aus irgendeinem Grund tut. Und wie immer sind die Fehler nicht informativ / intuitiv genug.

    
Pulak Agrawal 27.11.2012 11:08
quelle