2013-01-31 51 views
6

有什么办法可以避免开发人员下载所有的依赖关系,并将这些依赖关系定位到共享位置,以便所有开发人员和每个开发项目的开发人员指向该位置?跨开发人员的共享Maven存储库

任何人都可以用示例文件和示例来解释吗?

+0

您可以使用'-Dmaven.repo.local'参数或在'settings.xml'中添加' ...'来指定本地存储库。然而正如其他评论指出的那样,这个位置不是并发安全的,应该避免*。 – luka5z

回答

2

您可以更改本地资源库是这样的:

The location of your local repository can be changed in your user configuration. The default value is ${user.home}/.m2/repository/. 

<settings> 
    ... 
    <localRepository>/path/to/local/repo/</localRepository> 
    ... 
</settings> 

look this article

我想,如果你让共享文件夹和所有其他开发人员编写的路径此文件夹这样可以帮助(但我没有。试试这个)

UPDATE

使用共享回购是个坏主意。在两个或多个用户之间共享本地存储库不是线程安全的,可能会导致不同的错误。
因此,尽可能多的人在这里提到使用Artifactory

+2

本地存储库缓存并不安全。如果两个开发人员共享同一个开发人员,他们最终会遭到腐败。 –

+0

问题是“这是任何方式”,我的回答是某种方式,他可以做到这一点。但为什么你给我减。我说没有这样做。 –

+2

你应该指出*为什么*这是一个坏主意。当你告诉某人如何在室内安放枪支和枪弹时,你应该警告他们脚上的危险! –

9

最好的办法是与maven的仓库经理之一。设置的主要步骤如下: - 在内部机器上安装中央存储库 - 配置中央存储库以代理开发人员需要的存储库 - 修改开发人员的maven设置以使用内部maven存储库作为镜像一切(见here了解详细信息)

有3个著名的仓库管理人员提供:

我最喜欢的Artifactory的 - 安装和配置了不到一个小时。现在,如果开发人员向Maven项目添加新的依赖项,工件将从原始远程存储库下载到内部存储库,并且将可用。当下一个开发人员需要归档时,将从内部存储库下载 - 访问速度会更快。

0

我明白你想要什么,但我相信你这不是一个好主意。因为稍后会在开发人员立即开始在同一个项目上工作时发生conflit

0

Maven正在解析和更新依赖项。你总是在某个地方有一个本地的回购实例。您可以在.m2文件夹的settings.xml中配置本地存储库和其他配置文件。

例如本地回购看起来像

<localRepository>C:/dev/.m2/repository</localRepository>

它可能也解决共享文件系统。 您也可以在文件共享添加内部存储库为自己的行家文物为

<repository> 
    <id>internal.releases.upload</id> 
    <name>Internal repo</name> 
     <url>file:////data/repo</url> 
</repository> 

例如。在这里阅读有关存储库的更多信息http://maven.apache.org/guides/introduction/introduction-to-repositories.html