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

为什么maven找不到位于托管存储库中的工件?

蒲寂离
2023-03-14

我们有一个nexus服务器,它有一个公共maven公共存储库组,其中包含每个外部代理存储库(例如maven central)。此外,我们还有一个本地托管存储库。让我们称之为MyProjectRepository。它分为发布回购和快照回购。

所以,现在看起来是这样的:

  • MyProjectRepository
  • 我的项目存储库-快照
    • 工件一
      • 快照-5
      • ...
      • 快照-1
      • 快照-3
      • ...
      • 快照-1

      好吧,artifactTwo需要artifactOne作为依赖项。所以,我在依赖项部分添加了这个:

          <dependency>
              <groupId>com.company</groupId>
              <artifactId>artifactone</artifactId>
              <version>0.0.5</version>
          </dependency>
      

      我对存储库部分进行了如下配置:

          <repository>
            <id>myprojectrepositoryss</id>
            <name>MyProjectRepository Snapshots</name>
            <url>http://mylocalnexus.com/nexus/repository/MyProjectRepository-Snapshots/</url>
              <releases>
                  <enabled>false</enabled>
              </releases>
              <snapshots>
                  <enabled>true</enabled>
              </snapshots>
          </repository>
      

      我的settings.xml镜像部分如下所示:

          <mirror>
             <!--This sends everything else to /public -->
             <id>nexus</id>
             <mirrorOf>external:*, !myprojectrepositoryss</mirrorOf>
             <url>http://mylocalnexus.com/nexus/repository/maven-public/</url>
           </mirror>
      

      我的settings.xml配置文件部分如下所示:

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

      尽管设置了教程中描述的所有内容,但我的IDE声明无法找到给定依赖项中的工件。

      未能对项目ArtifactTwo执行目标:无法解析项目com的依赖项。公司:ArtifactTwo:jar:0.0.3-SNAPSHOT:找不到com。公司:artifactone:jar:0.0.5英寸http://mylocalnexus.com/nexus/repository/maven-public/已缓存在本地存储库中,在经过nexus的更新间隔或强制更新之前,不会重新尝试解析

      为什么它在“maven-public”中搜索依赖项?有人知道如何让它工作吗?

共有2个答案

夹谷衡
2023-03-14

奇怪的是,在<代码>

请注意,本地和远程存储库的高度缓存结构以及Maven在本地标记它无法远程找到的工件的“习惯”使情况分析变得非常复杂。使用-U Maven选项确实有助于解决它。

卜凯旋
2023-03-14

它根据需要在maven public组中进行搜索,并在设置文件的镜像URL中进行配置。

您只需将项目存储库添加到maven公共存储库组中,它就可以正常工作了。

 类似资料:
  • 我有一个,具有以下依赖关系: 我尝试了几个其他版本,也从本地repo中删除了依赖项,并再次尝试,但没有帮助。会有什么问题?

  • 我有一个小型开源图书馆的分叉,我正在github上工作。我想通过maven让其他开发人员可以使用它,但是我不想运行我自己的Nexus服务器,因为它是一个分叉,所以我不能轻松地将它部署到oss.sonatype.org. 我想做的是将它部署到github,这样其他人就可以使用maven访问它。最好的方法是什么?

  • 问题内容: 我正在使用Maven版本3.6.1 我想在Maven存储库(elasticsearch-rest-high-level-client 7.5.1)中下载工件。我可以在 maven-central-repository search 但是在搜索elasticsearch elasticsearch-rest-high-level-client/7.5.1给出的回购协议时,它们是Centr

  • 问题内容: 我已经构建了Gradle插件并将其发布到本地Maven存储库。我可以在〜/ .m2 /存储库中看到它。但是,当我运行Gradle项目以使用此插件时,它甚至不会在本地存储库中查找……至少,并非基于输出。 当从命令行运行时,它将报告此信息: 失败:生成失败,发生异常。 其中:构建文件“ D:\ Work \ MuseProject \ update4j-gradle-plugin \ ex

  • 问题内容: 背景:我正在封闭网络中的Maven项目,这意味着我无法连接到Maven Central。我有一个存储库文件夹,其中包含我需要的所有工件,包括插件和Maven工件。另外,我无法使用或安装Nexus。 问题:我想使用maven 3.6.0 / jdk 1.8.0_162运行Jenkins作业。我的settings.xml文件如下: 我的POM没有存储库部分,因为jenkins从属服务器应确

  • null 我已经检查了我的防火墙,在那里看不到任何问题。我使用的命令行是 mvn deploy:deploy-file-dgroupid=com.stream-dartifactid=streamlib-dversion=7.3-dgeneratepom=true-dpackaging=jar-drepositoryid=nexus-durl=http://kamino:8081/nexus/re