这可能听起来很疯狂但我们的开发人员都在同一台Linux机器上工作,这台机器也安装了nexus作为我们的maven repo。实际上,每个人都会在〜/ .m2 /文件夹中找到人工制品,这些文件也会在nexus服务器中重复出现。
是否可以简单地告诉maven只查看nexus中的人工制品?
我暂时在我们的全局maven配置中设置了属性<localRepository>/path/to/global/repo</localRepository>
,但不确定如果两个用户同时抓取同一个文件,这是否会导致问题。
我们之所以这样做是因为公司不会向我们购买功能强大的工作站,所以我们都可以使用我们的开发服务器。
答案 0 :(得分:4)
我不确定这个是否直接回答了您的问题,但看起来您正在做的事情是正确的。
来自http://maven.apache.org/settings.html
localRepository :此值是此构建系统本地的路径 库。默认值为 $ {}的user.home /。平方米/存储库。这个 元素对于a特别有用 主构建服务器允许所有 登录用户从共同构建 本地存储库。
答案 1 :(得分:2)
我不想将我的本地仓库指向nexus数据存储区,因为然后安装会更新nexus后面的存储库数据存储区。
但是,您可以设置与nexus数据存储分开的单个“机器”本地存储,
然后为每个用户将~/.m2/repository
目录更改为指向“机器”本地仓库的符号链接。
至少那时你只有2份回购。
并发安装和下载,仍然可能互相破坏,但这可以通过恼人的重做来解决。
<强>更新强>
有一种新的解决方案可供选择。
安装TEAM(用于Apache Maven的Takari Extensions)扩展,提供了一个线程安全的本地存储库和一个用于多模块构建的改进算法。
请参阅http://takari.io/book/30-team-maven.html#concurrent-safe-local-repository
答案 2 :(得分:0)
使用 - 离线 命令行中的选项。