2

短い: (groupId、artifactId、バージョン、リポジトリ URL) を指定して、プログラムで Maven にアーティファクト URL を解決させることはできますか?

Long: (groupId、artifactId、バージョン、リポジトリ URL) を指定すると、Maven アーティファクトをダウンロードできます。通常、アーティファクトへの URL は次のようになります。

scheme://{repository}/{groupId}/{artifactId}/{version}/{artifactId}-{version}.jar

(org.apache.maven, maven-core, 3.0.0, http://repo.maven.org/maven2 ) の場合、アーティファクト URL は次のように解決されます。

http://repo.maven.org/maven2/org/apache/maven/maven-core/3.0.0/maven-core-3.0.0.jar

上記の推測されたパターンを使用して、文字列の連結を使用して、任意の (groupId、artifactId、バージョン、リポジトリ URL) のアーティファクト URL を生成できます。ただし、Maven の将来のバージョンで変更される可能性があるため、この推測されたパターンに依存したくありません。

与えられたアーティファクト URL (groupId、artifactId、バージョン、リポジトリ URL) を Maven にプログラムで解決させることはできますか?

4

3 に答える 3

2

多くの Maven リポジトリには、アーティファクトの検索に使用できる API があります。たとえば、中央の Maven リポジトリには 1 つあり、ドキュメントはこちらにあります。

あなたの例では、中央リポジトリの API は、検索に直接リンクするために次の URL を提供します。

http://search.maven.org/#search|ga|1|g:"org.apache.maven" AND a:"maven-core" AND v:"3.0"

XML データ (最後のパラメーターを変更することにより、JSON) を返すための次の URL:

http://search.maven.org/solrsearch/select?q=g:"org.apache.maven" AND a:"maven-core" AND v:"3.0"&wt=xml

この場合、JAR の URL を手動で作成する (またはその検索結果をスクレイピングする) 必要がありますが、他のリポジトリ ( Nexusなど) はこれを API 結果で直接提供します。

于 2013-08-22T19:28:45.107 に答える
1

ツタのようなものは、あなたが提案している方法でより簡単に埋め込むことができます. Ivy は、maven と同じレイアウト、またはカスタム レイアウトを使用できます。

于 2013-08-22T19:21:39.097 に答える