当前位置: 首页 > 知识库问答 >
问题:

在Nexus中有更好的配置存储库的方法吗?

柴泰平
2023-03-14

我有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>

这就是pom中定义的所有存储库。xml(包括默认的Maven Central)由Nexus提供。

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

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

更新:我正在寻找最美丽,简单,易于解释和理解的解决方案。

共有2个答案

鲍飞星
2023-03-14

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

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

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

钮安歌
2023-03-14

我将从我最近的经历中给出一些想法,但我的感觉是,您应该确保您对构建和各种组与它的交互有一套明确的需求,并从这些真正的需求中驱动您的构建环境设计。

提示。

1)除了CI构建服务器,我不会把镜像放在任何地方。通知开发人员,他们可以从本地开发框的任何地方拉取,但是当他们签入时,如果依赖项不能从CI引用的关系中找到,那么他们必须和你一起工作。这就把责任推到了他们身上。

2)有很多仓库。我会考虑不正式引用这么多公共回购。我对这些回购不太了解,但有很多东西。听起来你正在经历重复。然而,你的公共组配置会告诉你罐是从哪里来的;配置中回购的顺序将决定罐来自哪里。所以,它总是会从第一个找到它的地方拉出来。

 类似资料:
  • 尝试将 Nexus 3.15.2 用作本地/离线包管理器。Npm 和 Maven 存储库是可以的。但是,也想用作APT存储库。它具有 yum 存储库功能,但没有 apt 存储库类型。尝试按照这些说明将 nexus-repository-apt 插件与 docker 容器一起使用 https://github.com/sonatype-nexus-community/nexus-repository

  • 假设我有一个用户模式/模型,用户有一个朋友列表。Mongoose希望您将好友列表(外键/ObjectID类型)存储为数组,对吗?这意味着如果我想通过ID找到我的朋友,Mongoose将搜索数组,直到找到具有我想要的ID的朋友的第一个实例。那似乎真的是时间低效,不是吗?有更好的办法吗?

  • 问题内容: 我正在尝试配置Jenkins(在Windows Server2008上运行)以连接到GitLab6.0存储库(在Linux机器上)。 在本地窗口框中,我可以使用SSH URL在GitLab服务器上克隆项目。我在使用HTTP URL时遇到了一些问题,但是我确实设法使用Eclipse插件通过HTTP与身份验证进行连接。 在Jenkins项目配置屏幕上,我尝试过: http://myserv

  • 如果我试图使用命令上传一个jar 但我在Nexus Repository Manager OSS中找不到这个选项卡。这应该在tab摘要之后,但它不在那里。

  • 我在获取 gradle 时遇到了麻烦,无法找到我放入私有 nexus 存储库中的依赖项。依赖性在maven中,但我似乎也无法让它在那里找到它。我确实把它放进了我的nexus存储库,位置 http://nexus.hq.chris.com/content/repositories/emoji4j/ 建筑格拉德尔·斯尼佩特 有谁知道我如何让 gradle 在 http://nexus.hq.chris

  • Maven只是看不到这些存储库,直到我从中删除。我还尝试将其他存储库镜像到Nexus,但没有成功:Maven仍然只使用中央存储库。 我做错了什么?