私が管理しているMavenプロジェクトをApache-Ant/Ivyに切り替えることを検討しています。ビルドプロセスをより詳細に制御する必要があり、Mavenに非常に不満を感じています。 Mavenの素晴らしさに関するコメントはありません。私の質問はアイビーについてです。プロジェクトビルド用のAnt/Ivy
変更を最小限に抑えて後で他のプロジェクトで使用できる「標準の」Antビルドテンプレートを設定したいと思います。
パブリックMavenリポジトリ(商用ライブラリ、サンライブラリ、プロプライエタリライブラリなど)では利用できないサードパーティライブラリを配置できる中央の「エンタープライズ」リポジトリを設定します。このエンタープライズ・リポジトリーは、ローカルLAN上で使用できますが、オフィス外からは入手できません。
各開発者は~/.ivy/repository
にプライベートレポジトリを持ちます。私はAntビルドで、このプライベート・リポジトリをエンタープライズ・リポジトリからのライブラリの変更されたバージョンで自動的に更新したいと考えています。
~/.ivy/ant
では、個々のプロジェクトbuild.xml
ファイルに「標準」モジュールを含め、Ant 1.8のinclude
タスクを使用する予定です。これらのモジュールは、scala-compile-2.9.1.xml
,clojure-compile-1.3.xml
など、ScalaとClojureのバージョンが異なるScala
とClojure
のコンパイルターゲットを提供します。ビルドモジュールはエンタープライズリポジトリで利用できるため、プライベートリポジトリで自動的に更新される必要があります彼らは変わる。
各プロジェクトには、標準のMavenディレクトリ構造に従います:${project}/src/main/java
、${project}/target/classes
など
過去には、私はアイビーを使用してみましたが、Antビルドファイルは、テンプレートの構築のための非常に大規模な(> 500行に持っファイル)と管理/編集が困難です。私は~/.ivy/ant
ディレクトリ内に独自のビルドモジュールで標準的なターゲットを置くことで、コードが肥大化するのを避けることができると期待しています。
これはできますか?ベースから離れていますか? Ivyで見つかる唯一のドキュメントは、Apache Webサイト(http://ant.apache.org/ivy)です。書籍を含むその他の資料はありますか?
私はあなたのライブラリのプライベートリポジトリを必要とすること、とは思いません。 アイビーは、依存関係を解決するときに、それが最新の状態に維持します〜/ .ivy2、中に独自の[キャッシュ](https://ant.apache.org/ivy/history/latest-milestone/concept.html#cache)を管理します。 – oers