2017-12-20 23 views
0

限られたインターネットリソースのためにオフラインで開発しており、数か月に一度、外部リポジトリ全体を一度に実行したい(例:repo1.maven.org/maven2 - ディスク容量は問題ありません)。オフラインで使用するためのmaven2リポジトリをダウンロード

今日は私が使用している共通の依存関係がたくさんあるシンプルなPOMを使用しています。ローカルのmavenにローカルのキャッシュリポジトリを介してプロキシをミラーするように設定しました。オフラインで使用するために掴んでいますが、これはあまり効果的ではありません。

mavenリポジトリの検索を実行できるコマンドラインツールを探しています。ローカルのNexusインストールにそれらをすべて取得するスクリプトを書くことができます。それを達成する別の方法があります。一般的に

+0

あなたはあなた自身のネットワーク内のプライベートリポジトリを設定し、これを設定することができますMaven中心の鏡として。 [ネクサス](https://www.sonatype.com/download-oss-sonatype)を使うことができます – ares

答えて

0

おかげで、「go-offline」 と呼ばれるMavenの依存関係のプラグインでの目標は、だから、すべてのプロジェクトの依存関係をつかむために、地域.m2レポでそれらを保存することができますがあります。

さらに詳しい情報はhereです。

Mavenを実行し、ネットワークが存在しないように動作させる場合は、「-o」オプション(オフラインモード)で実行できます。したがって、依存関係がローカルにインストールされていなければ、Mavenはネットワークに接続しようとしてもビルドに失敗します。

反対に、Mavenにチェックを入れて新しいバージョンを持って来させたい場合(そうでなければすでにリポジトリにあるはずです)、 "-U"オプションを使用できます。

私は一般的な検索とダウンロードの使用例についてはっきりしていません。通常、NexusまたはArtifactoryをネットワークに一度インストールすると、各依存関係は一度だけダウンロードされます。ローカルの開発マシンでは、通常、ファイルシステムで作業するだけで、このようなツールは保守しません。

今、インターネットからリポジトリ全体をコピーしたい場合は、後でApache Nutch for exampleのようなクローラを使用するか、すべてのファイルを再帰的にダウンロードする独自のスクリプトを作成することができます。

+0

オフラインで(設定として)、すべての目的に役立つわけではありません。ユースケースはシンプルです - 私たちはしばらくインターネットに接続しており、その間にJAR(依存関係)を可能な限り取得したいと思います - 依存関係はプロジェクトのPOMの一部ではなく、未来 - 私たちはインターネットを持っていないので、特定のプロジェクトに基づいているのではなく、すべてを取り出すだけです。 –

+1

今、私はそれを持っています。いったん私はインターネットアクセスなしで開発するための全く異なるネットワークを持つ環境で働いていました。そこで、ネクサスリポジトリ全体をダウンロードしなければなりませんでした。その後、私たちはMavenリポジトリをクロールしてすべてをダウンロードしたスクリプトを書いたばかりです。 Repo1はhttp apiを公開しているので、簡単にできるはずです:http://repo1.maven.org/maven2/ –

0

全体ではなく、溶液(まだ)が、私はrepo1.maven.org/maven2の全体の内容をつかむためにhttrackを使用している - それは、すでに何よりも優れています:)

関連する問題