我在 GitHub 上托管了一个项目,其中有一个分支用于开发新版本:https://github.com/jrtom/jung/tree/common.graph
master 分支 (v2.1.1) 构建良好。
common.graph
分支与 master
的区别仅在于两个方面:
- 我已将
pom.xml
文件中的版本从2.2-SNAPSHOT
提高到3.0-SNAPSHOT
。这实际上是一种装饰。 - 我已将 Guava 依赖项版本从
19.0
提高到20.0-SNAPSHOT
,以便我可以开始针对新功能进行开发。 根据 Guava 文档,这是正确的依赖项:https://github.com/google/guava#snapshots
common.graph
分支的 pull 请求通过 Travis 成功构建:https://github.com/jrtom/jung/pull/65
但是,当我克隆这个分支时:
git clone --branch common.graph --single-branch git@github.com:jrtom/jung.git jung_3.0
然后运行mvn install
,我得到这个错误:
Failed to execute goal on project jung-api:
Could not resolve dependencies for project net.sf.jung:jung-api:jar:3.0-SNAPSHOT:
Could not find artifact com.google.guava:guava:jar:20.0-SNAPSHOT
吹走 ~/.m2/repository 下的本地仓库没有效果。
据我所知——通过阅读 Maven 文档,通过查看其他引用 Guava 的 v20 快照的 pom.xml
文件——这个更改应该可以正常工作,但它没有.
将 Guava 依赖项更改为 18.0
有效。因此,-SNAPSHOT
规范似乎有点古怪,但我不明白是怎么回事。
如有任何建议/指点,我们将不胜感激。
更新:
@RC. 下面的回复为我指明了正确的方向,尽管我仍然需要为 Google 快照找出正确的存储库规范。为了将来引用,这里是规范:
<repositories>
<repository>
<id>google-snapshots</id>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
最佳答案
快照未推送到 maven central出于显而易见的原因。
如果你真的想要 Guava 快照,它seems他们被 push 这个 repository
收件人add a custom repository到你的 pom,使用类似的东西(改编自文档):
<repositories>
<repository>
<releases>
<enabled>false</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
<id>sonatype-OSS-snaphots</id>
<name>Sonatype OSS Snapshots</name>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
<layout>default</layout>
</repository>
</repositories>
关于java - 找不到Guava 20.0-SNAPSHOT Artifact ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39482751/