library:1.0.0-SNAPSHOT
。library:1.0.0-SNAPSHOT
拉入其本地缓存。library:1.0.0-SNAPSHOT
,可能是mvn release
图书馆。--update-snapshots
- 成功!这里的问题是: 如何在清除远程快照时使Maven 失败本地构建?
我想在持续集成系统中实现这一壮举,这意味着要求我在构建之前消除整个本地缓存的解决方案是不可能的。同样不可能的是内省项目的POM,并在构建之前手动删除本地缓存中的工件。
注意:我已经向Maven提交了#MNG-5245,希望如果遗漏,可以加快创建此功能。因此,如果您发现此错误报告,请抵制使用它作为答案的诱惑。
答案 0 :(得分:1)
不,Maven不支持这一点。我无法想象一个问题,它也是正确的解决方案。我建议你问另一个问题并解释你想要完成的事情。你可能会发现有更好的方法去那里。
答案 1 :(得分:1)
我能想到的最接近的是,在本地构建之前,首先对本地存储库中的快照执行本地存储库清除。
http://maven.apache.org/plugins/maven-dependency-plugin/purge-local-repository-mojo.html
“成功”构建的原因是因为Maven实际上可以在本地存储库中找到相应的快照工件。由于Maven没有“陈旧”工件概念,所有本地存储的工件实际上都是有效的工件(包括快照)。您可以做的最好的事情是确保本地存储库中没有快照工件,并强制Maven从远程仓库下载。但是,只有从远程仓库下载所有依赖项时,它才有效。
答案 2 :(得分:1)
Maven依赖插件具有purge local repository目标,可以配置为从本地存储库中删除特定工件。如果您在托管CI服务的同一服务器上创建发布版本(因此需要清除本地存储库),您可以将dependency:purge-local-repository
的执行添加到由Maven发布插件激活的配置文件中在release:perform
期间。
请注意,这无法清除单个开发计算机上的本地存储库。