Java 指定快照版本时不可解析的导入POM

Java 指定快照版本时不可解析的导入POM,java,maven,maven-3,Java,Maven,Maven 3,我试图构建一个maven项目,该项目声明一个依赖项管理部分,其中pom依赖项具有快照版本。但是它拒绝构建,除非我设置了非快照版本 My settings.xml定义此镜像,它包含我需要的所有快照版本: <mirrors> <mirror> <id>public</id> <url>http://repoHost:8081/nexus/content/groups/public/</url> <

我试图构建一个maven项目,该项目声明一个依赖项管理部分,其中pom依赖项具有快照版本。但是它拒绝构建,除非我设置了非快照版本

My settings.xml定义此镜像,它包含我需要的所有快照版本:

<mirrors>
  <mirror>
    <id>public</id>
    <url>http://repoHost:8081/nexus/content/groups/public/</url>
    <mirrorOf>*</mirrorOf>
  </mirror>
</mirrors>
输出中的链接确实提供了一些线索,但我还是无法解决问题

如果我只是更新以使用特定版本,我就可以让它工作:

<properties>
  <myArtifactId.version>1.0.0</myArtifactId.version>
</properties>

1.0.0
但是,消除对myParentArtifactId依赖项的引用并在所有指定的依赖项上指定快照版本也会失败,出现初始“找不到工件”错误,就像上面的“myGroupId:myParentArtifactId”错误一样


我可以在浏览Maven正在使用的存储库时看到快照版本。问题是为什么它找不到存在的快照?

在阐述这个问题时,我实际上设法找到了答案:

我向my settings.xml添加了一个构建配置文件,该配置文件定义了在何处查找快照:

<profiles>
  <profile>
    <id>development-build</id>
    <activation>
      <activeByDefault>true</activeByDefault>
    </activation>      
    <repositories>
      <repository>
        <id>snaps</id>
        <url>http://repoHost:8081/nexus/content/repositories/my-snapshots</url>
        <snapshots>
          <enabled>true</enabled>
          <checksumPolicy>warn</checksumPolicy>
          <updatePolicy>always</updatePolicy>
        </snapshots>
      </repository>
    </repositories>
  </profile>
</profiles>

开发建设
真的
折断
http://repoHost:8081/nexus/content/repositories/my-快照
真的
警告
总是
现在一切都按预期进行


“橡皮鸭”太棒了!:-)

在阐述这个问题时,我实际上设法找到了答案:

我向my settings.xml添加了一个构建配置文件,该配置文件定义了在何处查找快照:

<profiles>
  <profile>
    <id>development-build</id>
    <activation>
      <activeByDefault>true</activeByDefault>
    </activation>      
    <repositories>
      <repository>
        <id>snaps</id>
        <url>http://repoHost:8081/nexus/content/repositories/my-snapshots</url>
        <snapshots>
          <enabled>true</enabled>
          <checksumPolicy>warn</checksumPolicy>
          <updatePolicy>always</updatePolicy>
        </snapshots>
      </repository>
    </repositories>
  </profile>
</profiles>

开发建设
真的
折断
http://repoHost:8081/nexus/content/repositories/my-快照
真的
警告
总是
现在一切都按预期进行


“橡皮鸭”太棒了!:-)

这是错误的解决方案。您必须更改Nexus的配置,才能将快照存储库正确地处理到公共组中。谢谢@khmarbaise!我会调查的。导致我只寻找客户端解决方案的原因是,我是唯一一个有这个问题的人。直到昨天,我还无法在任何其他机器上重现这个错误。然后我发现,通过擦除本地Maven缓存,在没有这个额外repo配置的任何机器上都会出现错误。因此,在我开始在这里工作之前,Nexus服务器上很可能已经发生了一些变化(我在这里还是个新手)。再次感谢你的提示!这是错误的解决方案。您必须更改Nexus的配置,才能将快照存储库正确地处理到公共组中。谢谢@khmarbaise!我会调查的。导致我只寻找客户端解决方案的原因是,我是唯一一个有这个问题的人。直到昨天,我还无法在任何其他机器上重现这个错误。然后我发现,通过擦除本地Maven缓存,在没有这个额外repo配置的任何机器上都会出现错误。因此,在我开始在这里工作之前,Nexus服务器上很可能已经发生了一些变化(我在这里还是个新手)。再次感谢你的提示!
<profiles>
  <profile>
    <id>development-build</id>
    <activation>
      <activeByDefault>true</activeByDefault>
    </activation>      
    <repositories>
      <repository>
        <id>snaps</id>
        <url>http://repoHost:8081/nexus/content/repositories/my-snapshots</url>
        <snapshots>
          <enabled>true</enabled>
          <checksumPolicy>warn</checksumPolicy>
          <updatePolicy>always</updatePolicy>
        </snapshots>
      </repository>
    </repositories>
  </profile>
</profiles>