Maven Java ビルド ツールセットの代わりとして何を提案しますか? 単純な Ant スクリプトだけですか? Sコン?
7 に答える
とにかく何を使うかによります。メイブン1?メイブン2?Maven 2 は適切に文書化されており、Ant タスクや自作の Java プラグインと組み合わせて使用すると非常に強力です。
Ant の Maven 機能を使用する Ant タスクがあります: http://maven.apache.org/ant-tasks/index.html。したがって、独自の「ライブラリ」を作成する必要はありません。
また、Maven から Ant を呼び出すことができます: http://maven.apache.org/plugins/maven-antrun-plugin/。
たとえば、Groovy を使用してスクリプトを作成することもできます: http://groovy.codehaus.org/GMaven+-+Executing+Groovy+Code。
または、必要なカスタム ビットの Java コードを記述します: http://maven.apache.org/guides/plugin/guide-java-plugin-development.html。
あなたがそれを行うことができる場合、ミックスアンドマッチしない理由はありません;)
私は Mavenのアイデアが好きですが、最も単純な構成以外は常にそれと戦っています。そのアーキテクチャはプラグイン ベースであり、プラグインの品質は大きく異なります。ドキュメンテーションはせいぜい大ざっぱです。半分の時間、私が読んでいるドキュメントが Maven 1 または 2 用であるかどうかを判断できません。また、maven-ant-plugin
基本的なことを行うために を使用する必要があったことはどれくらいありますか?
私は約 1 年間Apache Ivyを使用していますが、とても満足しています。ただし、少し学習曲線があります。しかし、アクティブなメーリング リストがあり、著者は非常に反応が良いです。
私が最終的にやったのは、「解決」、「コンパイル」、「インストール」などのいくつかの単純なAntターゲットの「ライブラリ」を作成することsrc/main/java
でし<import>
た私のさまざまなプロジェクトに。このようにして、Maven スタイルの構成と Ant のすべてのパワーの両方の長所を活用できます。
私はIvyで Ant を使用するのが好きです。Ivy は、ビルド システム全体を Maven に合わせて変更することを強制することなく、Maven リポジトリを使用してライブラリの依存関係をフェッチします。
私はいくつかのプロジェクトでbuildrを使用しています。非常に簡潔で読みやすいビルド スクリプト (xml なし) であり、maven リポジトリを使用します (簡単な作業で、maven 1 と maven 2)。
私は、いくつかのプロジェクトで作業する Maven1 以降のものを探していましたが、m2 はそれほど魅力的ではありませんでした。Maven は、すべてのビルド システムをやり直す必要があるため、すでにすべての m1 ユーザーを空しく乾燥させていました (私の知る限り、一部は m2 で表現できません)。
私は ant4eclipse を使用するのが本当に好きです。プロジェクトの依存関係を通常どおり Eclipse にセットアップすると、すべてのプロジェクトを正しい順序でビルドする単一の ant スクリプトを作成できます。
サードパーティのライブラリの場合、すべての jar を含む (およびエクスポートする) 単一の eclipse プロジェクトをセットアップするか [これはお勧めしません]、サードパーティのライブラリごとに個別のプロジェクトをセットアップして、jar をエクスポートします。[プロジェクトを追跡できる後者の b/c をお勧めします->サードパーティの deps と、必要に応じてパーツをアップグレードします。]
Maven には少なくとも 3 つの異なる部分があります。リポジトリ、実装に依存しないライフサイクル、およびデフォルト プロジェクトの規則です。Ivy を使用すると、リポジトリのみが提供されます。
私はそれを使用していませんが、easyantは Maven のより完全な代替となるように設計されていると思います。リポジトリとして Ivy を使用しますが、規則と標準モジュールを追加します。
ビルドで複雑なビルド ターゲットが予想される場合は、buildr を使用します。利点は、特定のライブラリにまったく依存しないことです。やりたいことが何でもできるように、Ruby のすべての API が用意されています。Ivy とは異なり、この場合は依然として ANT に縛られています。必要なすべての操作を実行する既に確立されている ANT ベースのビルド メカニズムにライブラリの依存関係を導入したい場合は、Ivy への移行の努力は価値があります。