0

可以通过 URL 下载 POM 文件

http://search.maven.org/remotecontent?filepath

例如,Apache Commons Daemon 包的 POM 文件由三个属性标识

  • 神器:commons-daemon
  • 组:commons-daemon
  • 版本:1.0.13

生成的 URL 是:

http://search.maven.org/remotecontent?filepath=commons-daemon/commons-daemon/1.0.13/commons-daemon-1.0.13.pom

如果我使用交互式搜索按三个属性进行搜索,则此 URL 由中央存储库计算。可以使用返回XML 文档的 REST API 完成相同的搜索。这是 XML 响应的结果节点:

<result name="response" numFound="1" start="0">
  <doc>
    <str name="a">commons-daemon</str>
    <arr name="ec">
      <str>-javadoc.jar</str>
      <str>-sources.jar</str>
      <str>.jar</str>
      <str>-bin-windows.zip</str>
      <str>-native-src.tar.gz</str>
      <str>-src.zip</str>
      <str>-src.tar.gz</str>
      <str>-native-src.zip</str>
      <str>.pom</str>
      <str>-bin.tar.gz</str>
      <str>-bin.zip</str>
    </arr>
    <str name="g">commons-daemon</str>
    <str name="id">commons-daemon:commons-daemon:1.0.13</str>
    <str name="p">jar</str>
    <arr name="tags">
      <str>software</str>
      <str>commons</str>
      <str>invocation</str>
      <str>provides</str>
      <str>alternative</str>
      <str>mechanism</str>
      <str>apache</str>
      <str>daemon</str>
      <str>java</str>
      <str>code</str>
      <str>like</str>
      <str>unix</str>
    </arr>
    <long name="timestamp">1360214551000</long>
    <str name="v">1.0.13</str>
  </doc>
</result>

结果列出所有可用文件,但仅列出后缀。URL 丢失了,我不清楚如何计算它们。

计算完整文件路径的正确规则是什么?

据我所见,该目录似乎是通过附加组、工件和版本以及用斜杠替换任何点来创建的。并且版本号也是文件名的最后一部分。但是如何计算文件名的开头呢?它总是神器吗?

4

1 回答 1

2

查看@Brett Porter 编写的存储库布局规范。

引用:

对于主要工件:

/$groupId[0]/../$groupId[n]/$artifactId/$version/$artifactId-$version.$extension

对于次要工件:

/$groupId[0]/../$groupId[n]/$artifactId/$version/$artifactId-$version-$classifier.$extension

他在这个SO 答案中自我引用了它。

于 2013-03-07T15:11:39.353 回答