19

私は最近、Maven について多くのことを学んでおり、非常に感銘を受けています。Maven と同じ方法で、リポジトリとの通信、リポジトリへのデプロイ、リポジトリからの取得に関する情報はどこにありますか? これは公開されたプロトコルを通じて行われますか?

OSGI (および OBR) に関する情報を見つけましたが、これを調査すべきかどうかわかりません。

これを .net で実行したいと思います (何らかの理由で)。誰かが私に正しいコンポーネントを教えてくれるなら、Java ソース コードを調べてもかまいませんが、むしろプロトコル仕様を教えてもらいたいです。

[編集] HTTP に関する多くの回答が表示されます。さらに明確にしたいのですが、私は転送プロトコルを探しているのではなく、API プロトコルを探しています。たとえば、Simple Object Access Protocol (SOAP) は、Hyper Text Transfer Protocol を使用してメッセージを転送します。Maven のアクセス プロトコルは何ですか?

4

5 に答える 5

16

khmarbaise が既に述べたように、転送プロトコルはほとんどの場合 http(s) ですが、ローカル リポジトリの単純なファイル アクセス、WebDAV、SCP、SFTP など、他のプロトコルも利用できます。Maven リポジトリは、より特別なディレクトリ レイアウトです。リモートリポジトリのプロキシや認証などの特定のチェックなどの追加機能を提供する、Nexus や Artifactory などのサーバーがあります。

https://maven.apache.org/guides/introduction/introduction-to-repositories.html

http://wiki.jfrog.org/confluence/display/rtf/repository+layouts Maven リポジトリ レイアウト から 取得:[orgPath]/[module]/[baseRev](-[folderItegRev])/[module]-[baseRev](-[fileItegRev])(-[classifier]).[ext]

org/eclipse/jetty/jetty-ajp/7.0.2.v20100331/jetty-ajp-7.0.2.v20100331.jar

于 2013-04-03T16:51:59.503 に答える
4

通常のプロトコルは http であり、さらに .net の場合、nugetと呼ばれるソリューションが既に存在します。これは、すでにそれをサポートしており、neuxs や Artifactory などのリポジトリ マネージャーの一部と連携しています。

ああ...Mavenは独自のプロトコルを使用しています。SOAPなどはありません。ここを見て少し役立つかもしれません。さらにこれ

更新 wget を使用して Maven リポジトリからアーティファクトを簡単にダウンロードできます。これは単に http-get 操作です。アーティファクトをアップロードするには、単純に http-put ...curl でこれを行うことができます。

于 2013-04-03T16:43:02.250 に答える
3

厳密には、Maven 用の特別なアクセス プロトコルはありません。Maven はプレーン HTTP を使用してリポジトリからアーティファクトを取得します。リポジトリには、特別なレイアウト、つまり URL 構造 (通常のディレクトリ構造に単純に投影されたもの) が必要です。特別な方法でディレクトリを整理するだけで、独自のレポを整理でき[orgPath]/[module]/[baseRev](-[folderItegRev])/[module]-[baseRev](-[fileItegRev])(-[classifier]).[ext]ます。サーバー側に特別なソフトウェアは必要ありません。

したがって、特別なプロトコルよりもディレクトリ構造に関するものです。非常にシンプルで実用的なアプローチ。

もちろん、それに関する追加サービス (検索、アクセス制御、統計など) が必要な場合は、自分で行う必要があります。それが、JFrogArtifactory製品で行っていることです。

于 2016-02-15T09:12:02.197 に答える
2

私の知る限り、実際にはプロトコルはありません。Maven リポジトリは、HTTP 経由で (またはローカル ディレクトリで) 利用できる特定のリソース構造にすぎません。Codehaus には、やや古い説明があります。

リポジトリに「デプロイする」とは、後で上記のレイアウトから取得できる限り、任意の方法でファイルをアップロードすることを意味します。プラグインドキュメントには、deploy FTP および SSH の例が記載されています。これは、そのようなディレクトリ構造への単純なファイルのアップロードを意味します。しかし、HTTP 経由で適切に公開されるデータベースにファイルを格納するカスタム Web サービスにファイルをアップロードすることもできます。Maven はあまり気にしません。アーティファクトの展開、ストレージ、およびリポジトリへのアクセスは分離されています。

于 2013-04-03T17:43:15.483 に答える
0

次の形式の HTTP GET:

GET /content/repositories/approved-from-central/commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.pom HTTP/1.1
Cache-control: no-cache
Cache-store: no-store
Pragma: no-cache
Expires: 0
Accept-Encoding: gzip
User-Agent: Apache-Maven/3.3.9 (Java 1.8.0_102; Windows 7 6.1)
Host: localhost
Connection: Keep-Alive

ここに文書化しましたhttp://www.javamonamour.org/2017/10/maven-to-repository-protocol.html

于 2017-11-04T18:08:18.493 に答える