不从特定于项目的 maven nexus 设置中检索 jar

Not retrieving jars from maven nexus setup specific to project

获得了 2 个 Nexus maven 回购 - 一个服务或持有普通罐子 - 主要来自 maven central 和其他一些。和其他 - 项目特定的 maven nexus,它包含 2 个第三方 jar,它们是编译当前感兴趣的项目所需要的。

以下是添加的更新,以参考本地 nexus maven 设置和相应的依赖项..

pom.xml 片段:

<project 
...


<!-- download plugins from this *proj specific* repo -->
<repositories>
 <repository>
  <id>zzz-maven</id>
  <name>zzz-maven</name>
  <url>http://blah.blah.com/nexus/content/repositories/zzz-maven</url>
  <releases>
   <enabled>true</enabled>
  </releases>
  <snapshots>
   <enabled>true</enabled>
  </snapshots>
 </repository>
</repositories>

    <dependencies>
        <dependency>
        <groupId>zzz.zzz-report<groupId>
        <artifactId>zzz-report<artifactId>
        <version>1.2<version>
    </dependency>
    ...
    <!-- And other dependency to fetch jars from common nexus (which is working fine) -->

在下面添加到 settings.xml(以粗体文本突出显示)- 一个涵盖 Url 以检索项目特定的 jar 和对项目特定的 Nexus 进行身份验证的其他部分

<settings>   
  <mirrors>
    <mirror>
      <id>nexus</id>
      <name>Common nexus across org - Anonymous access </name>
      <url>http://common-nexusxyz.com/nexus/content/repositories/maven</url>
      <mirrorOf>*</mirrorOf>
    </mirror>
  </mirrors>


  <profiles>
     </profile>
     <profile>
      <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>

    <!--**Added this one** -->       
    </profile>
     <profile>
      <id>zzz-maven</id>
      <repositories>
        <repository>
          <id>zzz-maven</id>
          <name>zzz-maven</name>
          <url>http://blah.blah.com/nexus/content/repositories/zzz-maven</url>
        </repository>
      </repositories>
    </profile>

  </profiles>

  <activeProfiles>
    <activeProfile>nexus</activeProfile>
    <activeProfile>zzz-maven</activeProfile>  <!--**activated** additional one here -->
  </activeProfiles>

<servers>
  <server>   
   <id>zzz-maven</id>
   <username>userNameForZZZ</username> <!--**Specified** explicit password needed for proj specific maven nexus here -->
   <password>passwordForZZZ</password>
  </server>
</servers>

</settings>

但仍然抛出警告,然后是 mvn installmvn compile 的错误,例如:

[WARNING] The POM for zzz.zzz-report:zzz-report:jar:1.2 is missing, no dependency information available

想知道缺少什么 - 以便它从项目特定的 maven nexus 下载项目特定的 jar?

尝试在 pom 中同时使用 <repositories><pluginRepositories> 选项以考虑下载

期望它连接到 proj 特定的 maven nexus 并下载 pom 中定义的依赖 jar

您已定义

<mirror>
  <id>nexus</id>
  <name>Common nexus across org - Anonymous access </name>
  <url>http://common-nexusxyz.com/nexus/content/repositories/maven</url>
  <mirrorOf>*</mirrorOf>
</mirror>

这意味着所有请求(由于 mirrorOf 具有值 *)都被重定向到该特定存储库,无论 POM 或 settings.xml.