0

URLからPOMファイルをダウンロードすることが可能です

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

たとえば、Apache Commons DaemonパッケージのPOMファイルは、3つの属性によって識別されます。

  • アーティファクト:コモンズ-デーモン
  • グループ: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

インタラクティブ検索を使用して3つの属性で検索すると、このURLは中央リポジトリによって計算されます。XMLドキュメントを返すRESTAPIを使用して同じ検索を実行できます。これは、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

@BrettPorterによって作成されたリポジトリレイアウト仕様をご覧ください。

引用:

一次アーティファクトの場合:

/$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 に答える