如何从maven SNAPSHOT存储库下载SNAPSHOT版本?

chr*_*tek 32 java maven-2 snapshot maven

所以我有一个项目,我定期发布maven没有问题.我现在想要提供这个项目的SNAPSHOT版本.所以我做'mvn clean deploy'.一切正常,如下所示:

[INFO]从sonatype-nexus-snapshots中检索以前的内部版本号上传:https://oss.sonatype.org/content/repositories/snapshots/me/soliveirajr/menta-regex/0.9.6-SNAPSHOT/menta-regex-0.9 .6-20111010.153035-2.jar 5K上传(menta-regex-0.9.6-20111010.153035-2.jar)

我去我的sonatype经理,我可以找到快照: 在此输入图像描述在此输入图像描述

但是现在当我尝试使用这个快照作为对另一台机器中某些其他项目的依赖时,我得到:

<dependency>
  <groupId>me.soliveirajr</groupId>
  <artifactId>menta-regex</artifactId>
  <version>0.9.6-SNAPSHOT</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

失踪:

1)me.soliveirajr:menta-regex:jar:0.9.6-SNAPSHOT

尝试从项目网站手动下载文件.

然后,使用以下命令安装它:mvn install:install-file -DgroupId = me.soliveirajr -DartifactId = menta-regex -Dversion = 0.9.6-SNAPSHOT -Dpackaging = jar -Dfile =/path/to/file

或者,如果您拥有自己的存储库,则可以在那里部署文件:mvn deploy:deploy-file -DgroupId = me.soliveirajr -DartifactId = menta-regex -Dversion = 0.9.6-SNAPSHOT -Dpackaging = jar -Dfile =/path/to/file -Durl = [url] -DrepositoryId = [id]

那么如何强制maven将SNAPSHOT版本下载到我的本地(.m2)存储库?

Joh*_*ine 52

只需将其添加到〜/ .m2/settings.xml:

<profiles>
  <profile>
     <id>allow-snapshots</id>
        <activation><activeByDefault>true</activeByDefault></activation>
     <repositories>
       <repository>
         <id>snapshots-repo</id>
         <url>https://oss.sonatype.org/content/repositories/snapshots</url>
         <releases><enabled>false</enabled></releases>
         <snapshots><enabled>true</enabled></snapshots>
       </repository>
     </repositories>
   </profile>
</profiles>
Run Code Online (Sandbox Code Playgroud)

  • 很好的例子,给任何读者:请注意,如果你正在寻找 JaCoCo 最新快照,不要像我一样犯同样的错误并复制这个例子。因为它是一个插件,而且它们有不同的 repo。看到这个答案:/sf/answers/3267805971/ (3认同)

Tho*_*rad 6

为了完整起见,我想补充一点,也可以通过修改pom.xml项目的,只需添加

    <repository>
      <id>oss.sonatype.org-snapshot</id>
      <url>http://oss.sonatype.org/content/repositories/snapshots</url>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </repository>
  </repositories>
Run Code Online (Sandbox Code Playgroud)

到您的存储库列表。

我认为,这比修改更好~/.m2/settings.xml。该pom.xml文件也将通过Git供其他项目参与者使用,并允许他们下载快照。

资料来源:这个答案

  • 这非常有帮助。对于那些没有“&lt;repositories&gt;”部分的小注意事项,您将需要在这段代码的开头有一个标签,它与属性和依赖项处于同一级别。 (2认同)