我想了解Nexus和Artifactory等工件存储库的索引是如何工作的。它提供了什么好处?我的意思是 - 它如何帮助以及解决工件时使用的逻辑是什么?
我的理解是Lucene索引包含有关在给定代理存储库或组中存在哪些工件的信息,并且一旦下载了这些索引,您就可以轻松检查远程存储库是否包含您正在查找的工件和你可以尝试从拥有它的存储库中解决它。这是唯一的用途吗?是否也为本地解决方案查询索引(因为每个存储库都有索引)...?这实际上是如何工作的?
答案 0 :(得分:10)
Artifactory不使用索引进行搜索。我们相信索引已成为过去,当机器速度很慢且无法处理服务器端的大型搜索时。以下是搜索索引不良的部分原因:
现在,当像Artifactory这样的服务器可以提供实时搜索,通过UI为人类提供IDE等工具的API时,索引已经过时,并且仅在与m2eclipse等工具兼容时才支持Artifactory。
答案 1 :(得分:3)
存储库索引完全是关于搜索。 Maven Eclipse插件文档描述了该功能:
维护服务器端索引可以提高Maven客户端操作的效率。服务器端存储库管理器可以使用索引来启用搜索接口和REST API来检索工件(Sonatype Nexus不需要数据库)。
答案 2 :(得分:2)
正如Mark所说,Maven Index完全是关于搜索(服务器端,搜索通过UI公开,或使用REST)或客户端,例如M2E(典型示例是POM编辑器中的代码完成,其中上下文)提示使用索引为您提供Gs,As和Vs,同时添加依赖项。)
Nexus不使用索引来实现它的主要功能:提供工件和/或代理它们,同时它还可以动态维护索引。同样,索引不以“解决方案”或任何其他方式使用,除了搜索UI和下游发布原因(对于像M2E这样的客户端)。
例如,使用Maven Indexer的“客户端”,您可以查看示例here。
HTH,
〜吨〜