题
我最近直接下载一些行家伪影到我的本地储存库(.m2目录/库)。 现在,我安装了Nexus仓库管理器,并需要填写其存储,而不会再次下载所有的文物。有没有一种方法来更新与当地一个Nexus的仓库。 我不想简单地复制它们,因为就其公共服务器(中央,Codehaus的,等等)和本地资源库结构的Nexus独立的文物没有。
更新: 同时,我复制从本地存储库Nexus的存储(公共库)的文物。我可以浏览到通过Nexus的Web应用程序的文物,但不知何故Maven的无法解析Nexus的文物。 我是否需要特别注册呢?我重新索引的公共库和重新启动的Nexus多次 - 不可更改
解决方案
的Nexus具有若干类型存储库:托管库(那些确实存储Maven构件),代理存储库(当被请求的流量重定向到其他远程存储库的伪影),虚拟存储库(maven1存储库的一个单纯的适配器[出这个问题的范围的])。还可以创建库组可以从任何其聚集体(所述public
库是其中之一)的服务的伪像。
此外,关系根据其出版政策到的快照和<强>释放强>划分其存储库。前者只存储快照文物;而后者,理论上,可以同时存储快照和发布,但它实际上表现马车时回购是非常大的,并且包含快照。
为了举办的文物,你需要:
<强>首先强>除以本地资源库分成两个:含有一个快照,和另一种含的版本。的Nexus仓库皈依工具将帮助你,如果你的回购是非常大的:
<dependency>
<groupId>org.sonatype.nexus.tools</groupId>
<artifactId>nexus-repository-conversion-tool</artifactId>
<version>1.8.0.1</version>
<classifier>cli</classifier>
</dependency>
在downlaoded你可以执行java -jar nexus-repository-conversion-tool-1.8.0.1-cli.jar -rSource -oTarget
其中Source
是包含本地存储库移动到承上启下的目录,并Target
是现有的,空的,可写目录皈依工具将离开分裂库。只要源目录是repository
和Target是temp
,它将创建temp/repository-snapshots
和temp/repository-releases
目录。
二:移动你的分裂回购的Nexus。并让他们在${NEXUS_HOME}/sonatype-work/nexus/storage
,或任何你的Nexus安装配置存储库。
<强>第三创建2的托管库强>用相同的id作为你在第二步骤中移动的回购。 (在该示例repository-snapshots
和repository-releases
)
如果您的回购将只包含的版本中,您的解决方案可以工作,但你会COMMITED另一个错误。虽然每个仓库的Nexus商店文物,那些没有被托管回购存储只是为了缓存目的(如public
库的情况下),你就必须复制你的内容,一个以工作主持之一。