Avatar ·

什么是 Maven SNAPSHOT 以及为什么在 Java 项目中需要它?

大家好!我是 Java 和 Maven 的新手,正在做一个使用外部库的小项目,这个库也是我们并行开发的。在 pom.xml 文件中,我指定了版本为 `1.0.0-SNAPSHOT` 的依赖,但我的团队领导说这不适用于生产环境,只用于开发。 我不太明白普通版本(例如 `1.0.0`)和 `SNAPSHOT` 之间的区别。看起来两者都是版本。当我运行 `mvn clean install` 时,Maven 有时会报错说找不到本地的 `1.0.0-SNAPSHOT`,尽管我刚刚构建了该库。而有时,它又会拉取旧版本,尽管我已经做了更改。 请用简单的话解释一下什么是 Maven SNAPSHOT?为什么发明它?以及如何正确使用它以避免版本混淆?我特别想知道 Maven 如何决定何时下载新的 SNAPSHOT 版本,何时使用已缓存的版本。代码示例:我引入库 `com.example:my-lib:1.0.0-SNAPSHOT`,并希望每次构建时都获取最新更改。