Avatar ·

O que é Maven SNAPSHOT e para que serve em projetos Java?

Olá a todos! Sou novo em Java e Maven, estou trabalhando em um pequeno projeto onde uso uma biblioteca externa que também estamos desenvolvendo em paralelo. No arquivo pom.xml, especifiquei a dependência com a versão `1.0.0-SNAPSHOT`, mas meu tech lead disse que isso não é para produção, apenas para desenvolvimento.\n\nEu não entendo muito bem a diferença entre uma versão normal (por exemplo, `1.0.0`) e `SNAPSHOT`. Parece que ambas são versões. Quando executo `mvn clean install`, o Maven às vezes reclama que não consegue encontrar `1.0.0-SNAPSHOT` localmente, mesmo tendo acabado de compilar a biblioteca. E outras vezes, ele puxa uma versão antiga, mesmo eu já tendo feito alterações.\n\nExpliquem, por favor, o que é Maven SNAPSHOT em palavras simples? Por que isso foi criado? E como trabalhar corretamente com ele para evitar confusão com versões? Estou especialmente interessado em como o Maven decide quando baixar uma nova versão SNAPSHOT e quando usar a já em cache. Exemplo de código: estou incluindo a biblioteca `com.example:my-lib:1.0.0-SNAPSHOT` e quero que, ao