2017-06-22 21 views
0

シナリオ:ネットワークを介してmavenパブリックリポジトリにアクセスできない別の開発者のために、使用可能で簡潔なローカルリポジトリを準備する必要があります。しかし、私のコンピュータ上のローカルリポジトリは約20Gで、プロジェクトには関係のないアーティファクトの大部分が含まれています。Maven:依存する成果物をローカルリポジトリから別のフォルダに展開する方法

AFAIK mvn dependency:resolveを使用すると、依存関係のみを新しいローカルリポジトリの場所にダウンロードできますが、ネットワークトラフィックは制限されており、ダウンロードが完了するのを待つ時間を無駄にしたくありません。私はしばらくグーグルでグーグルを試しましたが、dependency:copy-dependenciesを試しましたが、アーティファクトのpom.xmlファイルやその他のメタファイルは含めず、jarファイルのみをコピーします。

私は、この回避策がMavenの精神に反していることは知っていますが、時にはオフラインで作業する必要があることもあります。

答えて

0

すべてのjarのリストがある場合は、mv2を一時的に抽出してhttps://maven.apache.org/guides/mini/guide-3rd-party-jars-local.htmlとしてインストールし、同僚にローカル.m2を与え、古い.m2の名前を戻します。

めったにありませんが、Maven Centralなどの公開リポジトリに存在しないため、ビルドで使用するためにローカルリポジトリに配置する必要があるサードパーティJARがあることはほとんどありません。 JARはApache Mavenが正しくピックアップできるように、正しい場所にローカルリポジトリに配置する必要があります。これを簡単にし、エラーを起こしにくいように、私たちはmaven-install-pluginに目標を提供しました。

mvn install:install-file -Dfile=<path-to-file> -DpomFile=<path-to-pomfile> 
:ポンポンファイルが同様にあります場合は、以下のコマンドでインストールすることができ

mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \ 
    -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging> 

:ローカルリポジトリにJARをインストールするには、次のコマンドを使用します。

バージョン2.5のmaven-install-pluginを使用すると、さらに改善されます。 JARがApache Mavenによって構築された場合、デフォルトで読み込まれるMETA-INFディレクトリのサブフォルダにpom.xmlが含まれます。その場合は、すべてを行う必要がある:ちょうどあなたのユースケースをhttps://github.com/simpligility/maven-repository-tools/tree/master/maven-repository-provisioner

mvn install:install-file -Dfile=<path-to-file> 
0

はこれを見てください。

関連する問題