由于互联网资源有限,我们正在离线开发,并希望每隔几个月运行一次外部存储库(例如repo1.maven.org/maven2
- 磁盘空间不是问题)。
今天我使用的是一个包含我们正在使用的许多常见依赖项的简单POM,我已经设置我的本地maven使用镜像代理通过本地nexus存储库进行本地缓存我是如何抓住线下使用的 - 但这并不是非常有效。
我现在正在寻找一个命令行工具,它允许我在maven存储库上运行搜索,以便我可以编写一个脚本,将它们全部存入我的本地nexus安装,并希望听到是否有任何或如果有另一种方法可以实现这一目标。
由于
答案 0 :(得分:0)
一般来说,Maven依赖插件中有一个名为“go-offline
”的目标
因此,它允许获取所有项目依赖项并将它们存储在本地.m2
repo。
您可以找到更多信息here。
如果您想运行Maven并告诉它表现得像网络不存在,您可以使用“-o”选项(离线模式)运行它。因此,如果本地没有安装依赖项,Maven甚至不会尝试去网络并带来它 - 但是会使构建失败。
相反,如果您想强制Maven检查并带来新版本(否则它们已经存在于您的仓库中),您可以使用“-U”选项。
我不确定我是否对常规搜索和下载用例有所了解。通常人们会在网络中安装一次Nexus或Artifactory,这样每个依赖项只会被下载一次。在本地开发机器中,人们通常只使用文件系统而不维护这样的工具。
现在,如果您想从互联网复制整个存储库(稍后将其复制到其他网络或其他东西),您可以使用Apache Nutch for example之类的抓取工具,或者制作自己的脚本,以递归方式下载所有文件。
答案 1 :(得分:0)
不是一个完整的解决方案(还)但我正在使用httrack来获取repo1.maven.org/maven2
的全部内容 - 这已经比没有好了:)