![](https://habrastorage.org/getpro/habr/post_images/a41/eab/ed2/a41eabed2fe898216974255c18623e40.jpg)
メイヴン
さまざまなレベルの依存関係と、タスクを完了するためのプラグインを記述するビルドシステム。
以前の投稿では、このシステムを説明する他の記事へのリンクがあり、その特徴は明確に定義されたアセンブリライフサイクルです。
- validate-プロジェクト情報を検証します
- コンパイル-ソースをコンパイルします。実際、これはコンパイラプラグインの魅力です。
- test-単体テストを実行する
- package-指定された形式(zip、rar、jar、war、earなど)のパッケージクラス
- 統合テスト-アセンブリ後に統合テストを実行する
- 検証-パッケージが正しく、品質要件を満たしていることを検証します
- install-アセンブリをローカルリポジトリに「インストール」します
- deploy-指定されたサーバーにパケットを送信します
ローカル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éにあったもののリスト(最も一般的なもの)(上記の順序でもう一度読むのが良い):
- Apache Antを使用してJavaアプリケーションを構築します。クイックスタート -コンパイルとパッケージオプションの例の説明
- Ant + Tomcat:小さなルーチン自動化は、Ant + Tomcat統合の良い例であり、サーバーでのビルドインストールタックの使用、サーバー環境の決定、サーバーの起動/停止、メモリリークの検出(リークの検出)さえも可能です。
- Ivyを使用したAndroidプロジェクトの依存関係管理-Ivyの例;
- Javaプログラムのインストーラーをすばやく作成する方法は、JavaFX接続でAntが広く使用されている好例です。
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>
おわりに
アセンブリシステムに慣れるときは、落ち着いておく必要があります。それは、「支援するために」発明/作成/実装されたことを忘れないでください。 したがって、何かが客観的にあなたに合わない場合、それを再構成するか、不満を最小限に抑える方法がなければなりません。