maven 快照 更新策略

来源:互联网 发布:亚历克斯·张伯伦 知乎 编辑:程序博客网 时间:2024/06/05 03:22

为什么会有快照?

没有快照之前:
A项目依赖于项目B,B每次改动就赋予一个新版本号,然后告诉A我改版本好了啊,每次改动都得告诉,有时忘了就麻烦了。
可以看出没有快照会带来“浪费版本号”、沟通成大加大的问题。
有了快照之后:
A项目依赖于项目B,B每次改动都会打上时间戳,A编译时会检查B的时间戳,如果晚于本地仓库B的时间戳,那么就会进行更新,否则不予更新。
可以看出快照省去了沟通成本、版本号成本。

快照更新策略

注意,快照并不是每次install就会更新,这取决于更新策略;快照更新策略,有每日更新、永远检查更新、从不检查更新和自定义时间间隔更新,默认是每日更新也就是说一日更新一次,如果想总是更新,那么可以在settings.xml中配置。比如

<profile>    <id>nexus</id>    <repositories>        <repository>            <id>central</id>            <url>http://central</url>            <releases>                <enabled>true</enabled>            </releases>            <snapshots>                <enabled>true</enabled>                <updatePolicy>always</updatePolicy>            </snapshots>        </repository>    </repositories></profile>

也可以通过命令强制更新,mvn clean install-U

总结

我曾经遇到过,设置了快照版本,但没有更新的问题,后来才发现是更新策略的缘故,当时的更新策略是每日更新,这都是对maven掌握的不够深入导致的,设置为总是检查更新就好了。以上内容是读过《maven实战》加上平日实践的心得。