ビルドシステム-ローカルリポジトリ

アセンブリシステムに関する前回の投稿の続き-BuildSystems-Intro



メイヴン



さまざまなレベルの依存関係と、タスクを完了するためのプラグインを記述するビルドシステム。

以前の投稿では、このシステムを説明する他の記事へのリンクがあり、その特徴は明確に定義されたアセンブリライフサイクルです。




ローカルMavenリポジトリ


しかし、これらの記事はどれも説明していませんでした。これは私にとって非常に役立ちました。これはローカルリポジトリを設定しています。



デフォルトでは、次のディレクトリがローカルリポジトリとして使用されます(OS:Windows)

%userprofile%/.m2/repository
      
      





しかし、時間の経過とともに、リポジトリはどんどん大きくなり、システムパーティション上の場所を常に食い尽くすこの事実は、リポジトリの成長に正比例して私を失望させ始めました。

さらに、突然(あなたのように)作業する複数のユーザーが構成されている場合、そのような2つの複製リポジトリーが2倍の動揺を始めます。



これを防ぐには、適切でエレガントな解決策があります。ローカルリポジトリを別のパーティションに移動し、その上のすべてのユーザーを構成します。

これを行うには、ファイルを開きます

 %userprofile%/.m2/settings.xml
      
      





ローカルリポジトリ設定を追加する場所

 <localRepository>E:/_MAVEN_LOCAL_REPOSITORY</localRepository>
      
      





ローカルリポジトリを使用する場合、「。m2」ディレクトリのサイズは、114Kbのオーダーと同じままです。



プラグインを使用する


また、プラグインを使用してアーキタイププロジェクトを作成する例を少し拡張した例を示します。



Eclipse用のプロジェクトの作成



Maven-eclipse-plugin呼び出し

 mvn eclipse:eclipse
      
      





IDEA用のプロジェクトの作成



maven-idea-pluginを呼び出す

 mvn idea:idea
      
      





ただし、これらのコマンドを実行しても目的の結果が得られない場合は、呼び出されたプラグインのヘルプをご覧ください。次のように呼び出すことができます。

 mvn <plugin_name>:help
      
      





アクセスするプラグインの構成と可能なパラメーターについて説明します。



生成に関しては、次のようにアーキタイプに関するヘルプをリクエストできます。

 mvn archetype:generate
      
      





アリ+アイビー



Antは別のビルドシステムです

Ivyは、さまざまなリポジトリにアクセスして必要な情報を見つけてローカルリポジトリ(ローカルマシン上のキャッシュ)に読み込むことができる依存関係マネージャーです。



私の意見では、Antは、アセンブリの必要な段階の1つを自動化する必要がないという理由だけで、Maven(ところで、ant'aタスク/タスクにもアクセスできる)よりも大きな自由度を与えます。これを行うには、独自のMavenプラグインを実装します。 言い換えれば、Antは特定のアクションを迅速に自動化してプロジェクトを構築するようにさらに適応されており、あなたが側に行ったステップはエスケープとは見なされず、実行によって処罰されます。



このシステムに関してHabréにあったもののリスト(最も一般的なもの)(上記の順序でもう一度読むのが良い):



Ivyローカルリポジトリ


デフォルトであるローカルIvyリポジトリの配置と構成に関する同様の問題

 %userprofile%/.ivy2/cache
      
      





システム構成は「ivysettings.xml」から読み取られ、次のように接続することもできます。

 <ivy:settings file="${ivy.settings.file}" />
      
      





ただし、ローカルリポジトリ自体の配置は、属性「defaultCacheDir」を指定して「キャッシュ」セクションで再定義できます。

 <caches defaultCacheDir="${ivy.settings.cache}"> <cache name="cache"/> </caches>
      
      





この例では、定義済みの変数/プロパティ(プロパティ)“ ivy.settings.cache”を使用します。

Ivysettings.xmlの例
 <ivysettings> <settings defaultResolver="repository" validate="false"/> <caches defaultCacheDir="${ivy.settings.cache}"> <cache name="cache"/> </caches> <resolvers> <chain name="repository" changingPattern="*"> <!--    --> <filesystem name="ivy_repository_name" changingPattern="*"> <ivy pattern="${repository.base.dir}/[organisation]/[module]/[revision]/ivy-[revision].xml" /> <artifact pattern="${repository.base.dir}/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" /> <artifact pattern="${repository.base.dir}/[organisation]/[module]/[revision]/[artifact].[ext]" /> </filesystem> </chain> </resolvers> </ivysettings>
      
      







おわりに



アセンブリシステムに慣れるときは、落ち着いておく必要があります。それは、「支援するために」発明/作成/実装されたことを忘れないでください。 したがって、何かが客観的にあなたに合わない場合、それを再構成するか、不満を最小限に抑える方法がなければなりません。



All Articles