2011-03-08 38 views
2

这听起来很疯狂,但我们的开发人员都在同一台Linux机器上工作,这台机器也有安装nexus作为我们的maven回购。实际上,每个人都会在他们的〜/ .m2 /文件夹中找到文件,这些文件也在nexus服务器中复制。有没有办法禁用本地的Maven仓库?

是否有可能简单地告诉maven仅查看nexus中的人工制品?

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

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

回答

2

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

但是你可以建立一个单一的“机器”本地回购分离的关系数据存储,
然后为每个用户改变~/.m2/repository目录是指向“机器”本地回购符号链接。

至少你将只有2份回购。

并发安装和下载,仍然可能会互相破坏,但这可以用恼人的重做来解决。

更新:

有可用的新的解决方案。

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

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

+0

感谢队友,这是我在这个时间点正在做的事情,它似乎工作正常。不过,我只是将全局maven settings.xml文件改为指向已知位置,而不是〜/ .m2/repository。它一直在工作,但正如你所建议的那样,可能会有一个点可能会发生冲突:)感谢您的答案。 – 2011-03-08 23:28:26

+0

不推荐。 Maven本地存储库不应该被同时使用。 https://issues.apache.org/jira/browse/MNG-2802 – 2015-07-22 16:13:20

+0

除非你已经安装了TEAM(Takari扩展为Apache Maven)。这些扩展提供了线程安全的本地存储库和用于多模块构建的改进算法。我留下了深刻的印象,请参阅http://takari.io/book/30-team-maven.html#concurrent-safe-local-repository – crowne 2015-07-23 08:38:20

4

我不确定这直接回答您的关注,但它看起来像你在做什么是正确的。

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

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

+0

感谢队友,没有意识到文档实际上说明了我们正在做的事情,不知道我是如何错过的:)谢谢。 – 2011-03-08 23:29:08

0

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

+1

,它禁用远程存储库,并将本地存储库作为唯一解决文件不是被问到的。 – crowne 2011-03-09 07:37:46

+1

哇。这确实帮助我解决了我的问题。谢谢 – 2011-05-20 21:56:05

+0

不客气! – Luixv 2011-05-21 00:57:29

相关问题