“强制更新快照/发布” - 这是什么意思

时间:2017-02-13 03:30:13

标签: java maven jar build

在Maven项目中,选择“更新项目”时,会出现一个名为“强制更新快照/发布”的选项。它做了什么?

2 个答案:

答案 0 :(得分:2)

“强制更新快照/版本”就像运行以下命令

mvn -U install

-U也可以作为--update-snapshot使用。见here

Eclipse的m2eclipse插件使用maven-core API在内部调用相同的内容。

请参阅setUpdateSnapshots方法。

答案 1 :(得分:0)

  

在Maven的世界里,任何项目或组件都必须有自己的   版。该版本的值可能是1.0.0,1.3-alpha-4,2.0,   2.1-SNAPSHOT或2.1-20091214.221414-13。其中,1.0,1.3-alpha-4和2.0是稳定版本,而2.1-SNAPSHOT和   2.1-20091214.221414-13是不稳定的快照版本。

为什么Maven会区分发行版和快照版?简单的1.0.0,1.2,2.1等是不够的?为什么连2.1-SNAPSHOT,甚至长2.1-20091214.221414-13?想象一下这种情况,张先生在开发模块A版本2.1时,版本尚未正式发布,再加上模块A模块B的开发,这是由小张吉家族成员开发的,B功能取决于A的In在开发过程中,张经常需要建立自己的最新输出,到了季度MM,对于她的开发和集成调试,问题是,这是如何工作的? 如果你不断更新版本2.1.1,2.1.2,2.1.3 ....首先,小张和季MM都需要经常更改POM,如果有更多的模块依赖于模块A,将涉及更多POM变化;其次,大量版本实际上只包含很小的差异,这将导致滥用版本号。 Maven的快照版本机制是解决上述问题。在这个例子中,小张只需要将模块A的版本设置为2.1-SNAPSHOT,然后发布到PW,在发布过程中,Maven会自动为组件设置时间戳。例如:2.1-20091214.221414-13于2009年12月14日22:14第14快照的14秒。有了这个时间戳,Maven将能够随时在存储库2.1-SNAPSHOT版本中找到最新文件。这时,本季MM配置为模块A 2.1-SNAPSHOT版本的依赖,当她组件模块B时,Maven会自动从仓库模块A 2.1-SNAPSHOT检查最新组件,当发现下载时更新时默认情况下,Maven每天检查一次更新(由存储库的updatePolicy控制),用户也可以使用命令行-U强制Maven检查更新,例如:mvn clean install-U。 基于快照版本机制,Zhang可以在构建成功后将组件部署到仓库,并且季度MM不能考虑模块A的构建,并且她可以确保您可以获取最新的可用快照窗口小部件模块A始终。需要额外的手动操作。