Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 在Nexus中是否有更好的配置存储库的方法?_Maven_Repository_Nexus - Fatal编程技术网

Maven 在Nexus中是否有更好的配置存储库的方法?

Maven 在Nexus中是否有更好的配置存储库的方法?,maven,repository,nexus,Maven,Repository,Nexus,我在团队中共享了Nexus服务器和maven用户设置,其中包含 <mirrors> <mirror> <!--This sends everything else to /public http://www.sonatype.com/books/nexus-book/reference/maven-sect-single-group.html --> <id>nexus</id

我在团队中共享了Nexus服务器和maven用户设置,其中包含

  <mirrors>
      <mirror>
      <!--This sends everything else to /public 
      http://www.sonatype.com/books/nexus-book/reference/maven-sect-single-group.html
      -->
      <id>nexus</id>
      <mirrorOf>*</mirrorOf>
      <url>http://192.168.16.232:8081/nexus/content/groups/public</url>
    </mirror>    
  </mirrors>

关系
*
http://192.168.16.232:8081/nexus/content/groups/public
也就是说,pom.xml中定义的所有存储库(包括默认的Maven Central)都由Nexus提供服务

在Nexus中,新的存储库被添加到公共组中

问题:有更好的方法吗?目前,其他开发人员不了解Nexus+Maven交互,当pom.xml中定义了新的存储库(它不由Nexus代理)时,Maven只会说“无法获取工件”。但不是“配置您的Nexus服务器”: 其次,我发现一些公共存储库也缓存了其他存储库中的数据,所以最后,我无法确定这个jar到底来自哪里


更新:我正在寻找最漂亮、最简单、最易于解释和理解的解决方案。

我会根据我最近的经验给出一些想法,但我的感觉是,你应该确保你对构建和各个团队与构建的交互有一套清晰的要求,并使您的构建环境设计脱离这些实际需求

提示

1) 除了在CI构建服务器上,我不会将镜像放在任何地方。通知开发人员,他们可以从本地开发人员框中的任何位置提取,但当他们签入时,如果无法从CI引用的nexus中找到依赖项,则他们必须与您一起处理。这就把责任推到了他们身上


2) 这是很多存储库。我认为不会正式提及如此多的公共回购协议。我对这些回购协议不太了解,但有很多东西。听起来你好像经历了重复。但是,您的公共组配置将告诉您jar来自何处;配置中repo的顺序将决定jar的来源。所以,它总是从找到它的第一个地方开始

事实上,这正是我们在我工作的地方完成任务的方式。我们镜像了大约30份公开回购协议,这是最简单的方式。开发人员都使用我们的nexus安装作为一站式购物,因为我们需要添加东西,它只是出现在公共回购中。这样做还可以让我们更好地控制人们正在使用的人工制品,因为我们只包括我们想要允许的东西,而不是世界上的一切

不过,我们有一个区别,我们有“只发布”和“只快照”回购,而不是一个庞大的公共回购。主要原因是我们可以有不同的缓存策略,但在组织上也有点好


我在设置中遇到的唯一问题是,如果您试图在不在网络(office或vpn)上进行构建,那么什么都不起作用。我通过在本地保留2个settings.xml文件并在我需要的罕见情况下切换来解决这个问题。

我在目前的职位上从事构建工作已经一年多了,我感受到了您的痛苦。然而,这个问题有点模糊。我敢肯定,如果你在这个网站上搜索,你会发现关于nexus/jenkins/maven的同样模糊的问题,这些问题都是由你的trully发布的。尽管如此,你能更明确地表达你的需求,你就能得到更好的帮助。