要使用的主要/最佳Maven存储库是什么?
时间:2020-03-06 15:01:15 来源:igfitidea点击:
将使用哪些主要/最佳Maven存储库,其中包括大多数开源Java包依赖项。
还应按什么顺序包括这些内容?有关系吗?
解决方案
这是我们正在构建的项目中的当前设置:
- Maven中央
- 对象网
- JBoss Maven2
- 和一些快照(请参见下文)
<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代理,并在服务器端定义回购清单。该顺序仅在代理服务器一个接一个地尝试代理存储库并指定边缘存储库的情况下才重要,因为首先会降低未缓存工件的解析度(Artifactory允许我们为每个代理存储库指定白名单和黑名单表达式,这可以这个问题)
总体上,使用我们自己的存储库可以为我们提供更多的控制和可靠的构建("中心"通常很慢)。它还为我们提供了放置自己的工件和任何非免费的第三方工件的地方。