要使用的主要/最佳 Maven 存储库是什么,它将包含您的大部分开源 Java 包依赖项。
还应该以什么顺序包括这些?有关系吗?
这是我们正在构建的项目中的当前设置:
和一些快照(见下文)
<repository>
<id>MavenCentral</id>
<name>Maven repository</name>
<url>http://repo1.maven.org/maven2</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>objectweb</id>
<name>Objectweb repository</name>
<url>http://maven.objectweb.org/maven2</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>jboss</id>
<name>JBoss Maven2 repository</name>
<url>http://repository.jboss.com/maven2/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>glassfish</id>
<name>Glassfish repository</name>
<url>http://download.java.net/maven/1</url>
<layout>legacy</layout>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>apache.snapshots</id>
<name>Apache Snapshot Repository</name>
<url>
http://people.apache.org/repo/m2-snapshot-repository
</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>ops4j.repository</id>
<name>OPS4J Repository</name>
<url>http://repository.ops4j.org/maven2</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>Codehaus Snapshots</id>
<url>http://snapshots.repository.codehaus.org/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>false</enabled>
</releases>
</repository>
我建议使用像 Archiva、Artifactory 或 Nexus 这样的 Maven 代理,并在服务器端定义你的 repo 列表。顺序仅在代理服务器逐个尝试代理存储库并指定边缘存储库作为第一个将减慢未缓存工件的分辨率的范围内重要(Artifactory 允许您为每个代理存储库指定白名单和黑名单表达式,这解决了这个问题)
总体而言,使用您自己的 repo 可以为您提供更多控制和可靠的构建(“中央”通常非常缓慢)。它还为您提供了放置您自己的工件和任何非免费的第 3 方工件的地方。