3

問題: spring-core、spring-context、jacskon、testng、slf4j などのいくつかのライブラリに依存する圧縮された Java プロジェクト ディストリビューションがあります。タスクは、物をオフラインで構築できるようにすることです。必要なすべてのライブラリ jar を使用して、プロジェクト スコープのローカル リポジトリを作成してもかまいません。

私はそれをやろうとしました。プロジェクトには javac とランタイムに必要な jar が含まれているように見えますが、ビルドには依然としてインターネット アクセスが必要です。Maven は、ビルドに必要な独自のプラグインのほとんどを取得するためにネットワークに潜入します。Maven は空の .m2 ディレクトリで実行されていると想定しています (これはビルドの最初の起動であり、オフライン ビルドである可能性があるため)。いいえ、プロジェクト自体に沿って完全な Maven リポジトリ スナップショットを配布することは問題ありません。

少し背景: より広いタスクは、Windows ポータブル スタイルの JDK/IntelliJ Idea ディストリビューションを作成することです。これはプロジェクトに沿っており、最小限の構成と最小限のインターネット アクセスで IDE 内で最小限の Java コーディング/実行を可能にします。このプロジェクトは、システム構成をほとんどまたはまったく制御できない、コンピューター クラスの学生を対象としています。オフライン モード用にコンソール ビルド システムをそのままにしておくことが望ましいですが、maven はネットワークに過度に依存していると思われるため、古き良き ant を優先してそれを破棄する必要があります。

では、最初の Maven ビルドをオフライン モードに完全に移行することはできますか? 私の直感では、最初の Maven ディストリビューションには、メイン リポジトリから重要なプラグインをプルするために必要な最小限のものが含まれているだけで、メイン リポジトリを少なくとも 1 回見ないと完全には機能しないということです。

4

3 に答える 3

9

Maven には、オフラインでビルドできる「-o」スイッチがあります。

 -o,--offline                           Work offline

もちろん、$HOME/.m2/repositoryこれをエラーなしでビルドするには、依存関係がすでにキャッシュされている必要があります。次の方法で依存関係をロードできます。

mvn dependency:go-offline

このプロセスを試してみましたが、完全には機能していないようです。私はしました:

rm -rf $HOME/.m2/repository
mvn dependency:go-offline       # lot of stuff downloaded
# unplugged my network
# develop stuff
mvn install                     # errors from missing plugins

ただし、機能したのは次のとおりです。

rm -rf $HOME/.m2/repository
mvn install                     # while still online
# unplugged my network
# develop stuff
mvn install
于 2012-01-19T13:31:45.577 に答える
1

関連するプロジェクトの新しい .m2 リポジトリでmaven dependency:go-offlineを実行できます。これにより、maven がオフラインで実行できるようにするために必要なものがすべてダウンロードされます。これらをプロジェクト スコープのローカル リポジトリに配置すると、目的を達成できるはずです。これは試していませんが、

于 2012-01-19T13:32:40.880 に答える
0

ファイル内で、またはパラメーターを使用して実行することにより、ローカル リポジトリの場所を指定します。最初のプロジェクト ビルドの後、必要なアーティファクトはすべてローカルにキャッシュする必要があります。オフライン モードで他の Maven ビルドを実行しながら、このリポジトリの場所を同じ方法で参照できます ( )。settings.xml<localRepository>...</localRepository>mvn-Dmaven.repo.local=...mvn -o ...

于 2017-01-03T09:58:46.313 に答える