Maven 3 快照未部署到正确位置

maven 3 SNAPSHOTS are not deployed to the right location

我正在使用 maven 3 和 nexus 将我们的工件部署到存储库,

我看到 non-unique 选项在 maven 3 中被弃用,所以所有 SNAPSHOTS 工件都使用时间戳部署,我对此很满意,问题是看起来所有工件都不在版本 I 下指定 (0.6-SNAPSHOT) 所以当我尝试获取此依赖项时,构建失败,因为找不到它。

这是pom中的依赖定义:

<dependency>
    <groupId>com.globals</groupId>
    <artifactId>globals-general</artifactId>
    <version>0.6-SNAPSHO</version>
</dependency>

这是我尝试获取依赖项时遇到的错误:

Failed to execute goal on project mprest-mgrid-infra-cache: Could not resolve dependencies for project com.mprest.mgrid.infra:mprest-mgrid-infra-cache:jar:0.6-SNAPSHOT: Could not find artifact com.mprest.mgrid.globals:mprest-mgrid-globals-general:jar:0.6-SNAPSHOT ->

这是我的pom相关部分:

<distributionManagement>
    <snapshotRepository>
        <id>nexus-snapshots</id>
        <url>http://nexus:8081/repository/maven-snapshots/</url>
    </snapshotRepository>
    <repository>
        <id>nexus-releases</id>
        <url>http://nexus:8081/repository/maven-releases/</url>
    </repository>
</distributionManagement>

这是结构:

结构没问题, 在 0.6-SNAPSHOT 下有所有带有时间戳的 0.6-SNAPSHOT, 和 maven-metadata.xml 指向最新的工件。

事实证明,我需要以某种方式在 settings.xml 中添加存储库,以便我能够获得工件。

这是它的样子:

 <servers>
    <server>
     <id>nexus-snapshots</id>
   </server>
   <server>
     <id>nexus-releases</id>
   </server>
     <server>
     <id>maven-group</id>
   </server>
 </servers>

 <mirrors>
   <mirror>
     <id>maven-group</id>
     <name>maven-group</name>
     <url>http://nexus:8081/repository/maven-group/</url>
     <mirrorOf>*</mirrorOf>
   </mirror>
 </mirrors>

 <profiles>
  <profile>
     <id>allow-snapshots</id>
        <activation><activeByDefault>true</activeByDefault></activation>
     <repositories>
       <repository>
         <id>nexus-snapshots</id>
         <url>http://nexus:8081/repository/maven-snapshots/</url>
         <releases><enabled>false</enabled></releases>
         <snapshots><enabled>true</enabled></snapshots>
       </repository>

       <repository>
         <id>nexus-releases</id>
         <url>http://nexus:8081/repository/maven-releases/</url>
         <releases><enabled>true</enabled></releases>
         <snapshots><enabled>false</enabled></snapshots>
       </repository>
     </repositories>
   </profile>
</profiles>

</settings>

在最新版本的 Nexus API 中记录了检索组件最新版本的方法,按存储库、组、工件和基本版本过滤

示例: http://localhost:8081/service/rest/v1/search/assets/download?sort=version&repository=maven-snapshots&maven.groupId=org.foo.bar&maven.artifactId=project&maven.baseVersion=1.2.3-快照&maven.extension=罐子

参考文档: https://help.sonatype.com/repomanager3/rest-and-integration-api/search-api#SearchAPI-SearchComponents

也许您需要下载所需的 jar,之前和之后 运行 Maven 目标