問題: 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 回見ないと完全には機能しないということです。