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

本地Nexus存储库充当某些Maven工件的代理

东郭元魁
2023-03-14

我使用的是安装在本地计算机上的自己版本的Nexus web应用程序存储库。我只为Nexus配置了一个存储库,即我存储快照的库:

http://localhost:8081/nexus/content/repositories/MySnapshots/

注意,在安装Nexus之后,我删除了所有默认存储库,只添加了我自己的存储库。(也许这是个坏主意?)

当我进行mvn清洁安装时,我注意到一些第三方工件是直接从远程存储库下载的。例如,以下是构建的输出行之一:

Downloading: http://repo.maven.apache.org/maven2/com/sun/org/apache/xml/internal/resolver/...

奇怪的是,我看到其他工件通过我的本地连接最终到达工件:

Downloading: http://localhost:8081/nexus/content/repositories/MySnapshots/org/apache/maven/wagon/wagon-provider-api...

有人能告诉我为什么会这样吗?

如果我所有的构建都一直成功,我就不会被这个问题困扰太多了,但有时,当我编译大型项目时,我会因为找不到工件而导致构建失败。

例如,当我试图构建另一个依赖于eclipse jdt的项目时,我会得到以下错误:

Downloading: http://localhost:8081/nexus/content/repositories/MySnapshots/eclipse/jdt/core/eclipse.jdt.core
Could not find artifact eclipse.jdt.core:eclipse.jdt.core

共有1个答案

叶琦
2023-03-14

如果您喜欢像往常一样使用本地nexus作为代理,则必须像下面这样配置settings.xml:

 <mirrors>
    <mirror>
      <!--This sends everything else to /public -->
      <id>nexus</id>
      <mirrorOf>*</mirrorOf>
      <url>http://localhost:8081/nexus/content/groups/public</url>
    </mirror>
  </mirrors>
  <profiles>
    <profile>
      <id>nexus</id>
      <!--Enable snapshots for the built in central repo to direct -->
      <!--all requests to nexus via the mirror -->
      <repositories>
        <repository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </repository>
      </repositories>
     <pluginRepositories>
        <pluginRepository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
  <activeProfiles>
    <!--make the profile active all the time -->
    <activeProfile>nexus</activeProfile>
  </activeProfiles>

棘手的是镜像,它将每个调用重新路由到已配置的nexus实例。您提到的东西,比如eclipse部件,可能会有问题,因为只有少数工件可以通过maven Central获得。此外,您应该保持maven central、release repository和snapshots repository等默认值不变,因为这些是您需要的存储库。

 类似资料:
  • 我正在尝试将我的maven配置为使用Nexus存储库。我试图实现的应该是非常常见的:我希望有一个Nexus存储库作为中心依赖项的代理,还有两个用于快照和发布的存储库。那里有很多文档,但我无法让它运行。我编辑了my settings.xml,使其如下所示: 但我总是收到以下错误消息: 有人能帮帮我吗?我错过了什么?

  • 问题内容: 我想创建本地Maven存储库。我做了以下步骤: 在中安装了Maven插件 在apache服务器中创建了一个文件夹localrepository,可使用访问 在我的项目中,我提供了 但这并没有解决上的jar 是否需要提供存储库? 问题答案: 使用具有默认配置的Web服务器来设置简单的存储库。关键是目录结构。该文档没有明确提及它,但其结构与本地存储库相同。 要建立一个内部存储库,只需要您有

  • 我已经为存储库缓存设置了Sonatype Nexus。 通用域名格式。谷歌代码。maven没有解决htmleasy问题。出错 找不到com。谷歌代码。htmleasy:htmleasy:jar:0.7英寸缓存在本地存储库中,在nexus的更新间隔结束或强制更新之前,不会重新尝试解析- htmleasy是一个存在于基于谷歌代码的maven repo中的工件。 但当我基于上述回购协议引用以下工件时,我

  • 问题内容: 我的Maven配置有一个小问题。此处的所有其他问题和答案都不能解决我的问题,因此,我开始了一个新问题。 我的问题是,我的Maven没有使用本地存储库。它总是从远程存储库中获取工件。 当下载工件或构建项目时,它将安装在本地存储库中,因此路径正确。 问题是:当我构建一个SNAPSHOT项目时,它仅安装在本地存储库中(应该是这样,不想每次都将其发布在我的关系上)。当我在pom.xml中构建另

  • 我的Maven配置有一个小问题。这里所有其他的问题和答案都没有解决我的问题,所以我要开始一个新的问题。 我的问题是,我的Maven没有使用本地存储库。它总是从远程存储库中获取工件。 当下载工件或构建项目时,它被安装在本地存储库中,因此路径是正确的。 问题是:当我构建一个快照项目时,它只安装在本地存储库中(应该是这样的,不要每次都在我的nexus上发布)。当我构建另一个项目时,在pom.xml中有前

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