2

这听起来很疯狂,但我们的开发人员都在同一台 Linux 机器上工作,这台机器也安装了 nexus 作为我们的 maven 存储库。实际上,每个人最终都会在他们的 ~/.m2/ 文件夹中得到人工制品,这些人工制品也在 nexus 服务器中复制。

是否可以简单地告诉 maven 只查看 nexus 中的人工制品?

目前我已经<localRepository>/path/to/global/repo</localRepository>在我们的全局 maven 配置中设置了该属性,但不确定如果两个用户同时抓取同一个文件,这是否会导致问题。

我们这样做是因为公司不会给我们购买强大的工作站,所以我们都通过 ssh 连接到我们的开发服务器。

4

3 回答 3

4

我不确定这是否直接回答了您的问题,但看起来您正在做的事情是正确的。

来自http://maven.apache.org/settings.html

localRepository:此值是此构建系统的本地存储库的路径。默认值为 ${user.home}/.m2/repository。此元素对于允许所有登录用户从公共本地存储库构建的主构建服务器特别有用。

于 2011-03-08T21:58:24.417 回答
2

我不想将我的本地存储库指向 nexus 数据存储,因为这样安装会更新 nexus 背后的存储库数据存储。

但是,您可以设置一个与 nexus 数据存储区分开的“机器”本地存储库,
然后为每个用户将~/.m2/repository目录更改为指向“机器”本地存储库的符号链接。

至少那时你将只有 2 个 repo 副本。

并发安装和下载仍然可能会相互干扰,但这可以通过烦人的重做来解决。

更新:

有一个新的解决方案可用。

安装 TEAM(Takari Extensions for Apache Maven)扩展,为多模块构建提供线程安全的本地存储库和改进的算法。

请参阅http://takari.io/book/30-team-maven.html#concurrent-safe-local-repository

于 2011-03-08T22:25:00.873 回答
0

在命令行中使用 --offline 选项。

于 2011-03-08T23:27:20.703 回答