Avatar ·

Was ist Maven SNAPSHOT und warum wird es in Java-Projekten benötigt?

Hallo zusammen! Ich bin neu in Java und Maven, arbeite an einem kleinen Projekt, in dem ich eine externe Bibliothek verwende, die wir ebenfalls parallel entwickeln. In der pom.xml habe ich eine Abhängigkeit mit der Version `1.0.0-SNAPSHOT` angegeben, aber mein Teamleiter sagte, dass dies nicht für die Produktion, sondern nur für die Entwicklung gedacht ist. Ich verstehe nicht ganz den Unterschied zwischen einer normalen Version (z.B. `1.0.0`) und `SNAPSHOT`. Beides scheint eine Version zu sein. Wenn ich `mvn clean install` ausführe, beschwert sich Maven manchmal, dass es `1.0.0-SNAPSHOT` lokal nicht finden kann, obwohl ich die Bibliothek gerade erst gebaut habe. Und manchmal zieht er eine alte Version, obwohl ich bereits Änderungen vorgenommen habe. Erklärt mir bitte, was Maven SNAPSHOT in einfachen Worten ist? Warum wurde das erfunden? Und wie arbeitet man richtig damit, um Verwirrung mit den Versionen zu vermeiden? Besonders interessiert mich, wie Maven entscheidet, wann eine neue SNAPSHOT-Version heruntergeladen und wann die bereits gecachte verwendet wird. Beispielcode: Ich binde die Bibliothek `com.example:my-lib:1.0.0-SNAPSHOT` ein und möchte, dass bei