2017-04-11 305 views
0

我想了解的Maven下载从库的二进制文件。指定用于获取依赖项的Maven仓库URL?

例如,我有以下的依赖性为我的项目:

<dependency> 
    <groupId>org.apache.hadoop</groupId> 
    <artifactId>hadoop-hdfs</artifactId> 
    <version>2.7.1</version> 
</dependency> 

现在,这些二进制文件存在于http://mvnrepository.com/

在pom.xml中,我们有<repositories>标签,我们指定从那里Maven可以下载文件的存储库URL,模板:

<repositories> 
    <repository> 
     <id>mvnrepository_id</id> 
     <name>mvnrepository.com</name> 
     <url></url> 
    </repository> 

现在,我的疑问是,应该是什么<url>的值;它需要是base url,像http://mvnrepository.com/或完整URL - >http://mvnrepository.com/artifact/org.apache.hadoop/hadoop-hdfs

对我来说,似乎是应该的基本URL为别的,我们必须把完整的URL每个依赖性。

谁能帮我明白这一点?

+1

mvnrepository.com不是Maven仓库也没有Maven的中央......这意味着你不能用它来消耗神器...... [Maven的中央(http://search.maven.org/#搜索| GA | 1 |克%3A%22org.apache.hadoop%22%20A%3A%含有伪影22hadoop-HDFS%22)。 – khmarbaise

+0

非常感谢,我提到了其中一个SO问题的链接。但问题是一样的,我们需要提供存储库的基础? – CuriousMind

回答

1

除非您想从不同于默认中央Maven存储库的存储库中获取工件,否则不需要将<repositories>部分添加到您的pom.xml。阅读关于Maven资源库herehere

而且默认中央Maven存储库的urlhttp://repo.maven.apache.org/maven2/

PS:您发布的URL对于网站的人。为什么不使用

+0

非常感谢这些信息;所以我们必须提供“基础url”,然后maven会根据依赖关系的工件进行下载,这是正确的吗? – CuriousMind

+1

'groupId'和'artifactId'是必需的值。 'mvn'会从中央仓库中获取工件,除非你想更改默认的仓库,否则你不需要提供URL。 – franklinsijo