Maven SNAPSHOT VErsion vs. timestamp

ankoe

Grünschnabel
Hallo,
wir sind mehrere Entwickler, die an einem Projket arbeiten. Wir benutzen Maven und NEXUS als Repository. Einer der Entwickler hat mehrfach eine Bibliothek im Status SNAPSHOT auf den NEXUS gedeployt. Im Repository werden dafür Dateien mit einem timestamp angelegt. Das ist verständlich. Ich benutze diese Bibliothek. In meiner pom habe ich als Version 1.0.0-SNAPSHOT angegeben. Im classpath wird auch die Datei mit dem SNAPSHOT Suffix erkannt - also datei-1.0.0-SNAPSHOT.jar. Wenn ich ein Assembly erstelle wird jedoch eine Datei mit dem timestamp Suffix verpackt - also datei-1.0.0-20090825....jar. Dadurch werden natürlich die Klassen aus der jar nicht gefunden. Kann mir jemand einen Tipp geben, wie ich das Problem löse?

Gruß Andrea
 
Hallo zeja,
vielen Dank für deine Antwort. Um letztendlich die Applikation starten zu können, wird eine bat-Datei erstellt. In dieser bat-Datei steht der gesamte Classpath und darin enthalten ist die Datei mit dem SNAPSHOT Suffix. Die bat wird dynamisch zusammengebaut indem der Classpath aus System.getProperty( "java.class.path") ausgelesen wird.
 
Ich würde empfehlen mit dem dependencies Plugin alle Libraries in den Ordner lib zu kopieren und den Classpath dann mit
Code:
-cp .;lib\*
anzugeben.
 
Hallo zeja,
vielen Dank für den Tipp. ich muss noch ein bisschen testen, aber das scheint zu funktionieren mit lib/*. Es ist fpr mich jedoch eine generelle Frage - ich dachte, dass Maven die timestamp-Dateien auflöst in die in den pom angegebenen Versionen. Ist das generell so? Wie ist das bei Releases, werden den da die Versionen aufgelöst?
 
Releases werden ja im Normalfall nur einmal deployed. Daher steht dort die Versionsnummer mit dran. Damit man bei einem Snapshot genau weiß, welche Version man vor sich hat, wird da der Timestamp angehängt.
 

Neue Beiträge

Zurück