2016-09-07 5 views
1

berücksichtigt Ich habe Java-Projekte mit Maven kompiliert. Jedes Projekt hat seine eigene POM, das wie folgt aussieht:Maven SNAPSHOT werden als RELEASE

<project ...> 
    <groupId>group.id</groupId> 
    <artifactId>scripts</artifactId> 
    <version>1.0.1-SNAPSHOT</version> 
    ... 
    <dependencies> 
      <dependency> 
       <groupId>global</groupId> 
       <artifactId>common</artifactId> 
       <version>10.2.3-SNAPSHOT</version> 
      </dependency> 
    </dependencies> 
    ... 
</project> 

SNAPSHOT als RELEASE

Wenn ich einen mvn install tun, wird es kompilieren/installieren Sie es das erste Mal, dass ich den Befehl auszuführen. Nächstes Mal wird es nicht installiert. Es scheint, dass man es als eine RELEASE betrachten, es ist ein SNAPSHOT. Ich kann das in dem Zeitstempel sehen, der in dem installierten Paket enthalten ist. Wenn ich die Versionsnummer nicht ändere, ändert sich auch der Zeitstempel nicht.

Ich glaube, ich vermisse eine Maven-Konfiguration, aber dies wirkt sich sehr auf unsere Entwicklung aus, da wir gezwungen sind, die Projektversionen (und ihre Abhängigkeiten) für jede Testbereitstellung zu ändern.

Anmerkungen: Ich benutze maven 3.3.3. Es sieht so aus, als hätte ich dieses Verhalten nicht in 3.1.0 (ich bin mir der alten Version nicht 100% sicher. Sehr alt). Maven ist mit Nexus gekoppelt. Vielleicht kommt das Problem daher und ich konzentriere mich auf das falsche Pferd.

Vielen Dank für die Hinweise.

Edit: die Frage ist: Wie kann ich Maven von Schnappschüssen jedes Mal anstelle das nur beim ersten Mal wie ein RELEASE zu installieren?

EDIT GELÖST

Wir haben immer mvn install getan zu kompilieren und die Quellen zu installieren. Aus irgendeinem Grund haben wir den Befehl mvn clean nicht verwendet. Der korrekte Maven-Befehl zum Neukompilieren aller Quellen lautet mvn clean install.

Danke

+0

Es gibt eine Menge guter Informationen hier, aber was ist Ihre Frage? – byxor

+0

Mögliches Duplikat von http://stackoverflow.com/questions/2358965/maven-automatic-snapshot-update. Antwort 'mvn -U, --update-snapshots Erzwingt eine Überprüfung auf aktualisierte Versionen und Snapshots auf dem Remote-Repository' Kann Ihnen in diesem Fall helfen – Xantier

+0

Wo suchen Sie das? 'target' Ordner oder' .m2-> Repo'? Installieren Sie Releases, um Repo, aber es tut das jedes Mal – VinayVeluri

Antwort

0

@VinayVeluri Wenn Versionen für die Code-Änderungen erforderlich sind, bitte Version Sie sich für die Code-Basis, wenn es mühsam ist, gibt die Idee der Versionierung.

Wenn es in dem automatischen hat in Bezug auf den Update-Schnappschüsse, dann verwenden

mvn -u clean install 

Nach dem Hinzufügen dieser Befehlszeile arg Kräfte Maven alle Snapshots in einem Remote-Repository zu überprüfen und Ihr lokales Repository aktualisieren, wenn es veraltet ist .

source

+1

In der Zwischenzeit haben wir uns mit dem Problem beschäftigt und wir haben die exakt gleiche Lösung gefunden, die ziemlich einfach ist. Das ist erstaunlich, wie du dumm aussiehst, wenn etwas so einfaches es löst ... Wir haben noch nie 'clean' vor' install' gemacht, dann hat maven die Quellen nicht neu kompiliert. Danke für die Antwort. –

Verwandte Themen