2

私は現在、新しいプロジェクトを開始する準備をしており、ビルド管理ツール (Maven と Ant+Ivy の非排他的な代替手段) の選択について疑問に思っています。

一般的なシナリオは次のとおりです。

  • 小規模な数人のプロジェクト、
  • すべての開発者は Eclipse を IDE として使用します。
  • 2 つのターゲット: Android (プライマリ) と Java SE、
  • CI (具体的には Jenkins) を使用するため、何らかのビルド管理が必要です。

想定されるプロジェクト体制について:

  • ほとんどのコードと共通の依存関係を持つ 1 つの一般的なモジュール
  • Android 固有の deps とコードを含む 1 つの Android 固有のモジュール
  • デスクトップ固有の deps とコードを含む 1 つのデスクトップ固有のモジュール。

非技術的な考慮事項:

  • プロジェクトでは、私はビルド管理と CI の責任者です。
  • 私は Maven と Ant の両方を使用した経験がありますが、前者の構成についてはより実践的です。
  • アイビーの基礎知識だけで、
  • 特にEclipseとの相互運用性に関して、AndroidビルドにMavenを使用した経験は非常に複雑です。

現在、最良の選択は次を使用することです。

  1. ベース (およびデスクトップ) プロジェクトの Maven、
  2. Android プロジェクトの Ant+Ivy。

一見うまくいくように見えますが、これだけ多くのテクノロジーを使用すると、実際には苦労する可能性があることが直感でわかります。

要約すると、私の質問は次のとおりです。

条件を考えると、blockquote で説明されているセットアップを使用しても問題ありませんか、それとも純粋な Maven/Ant+Ivy を使用する必要がありますか (そうであれば、どのセットアップとその理由)?

4

1 に答える 1

2

どれ?

私は純粋な Maven アプローチを採用します。

なんで?

あなたが説明したシナリオは、集約(またはマルチモジュール)プロジェクトに完全に適合します。私自身の経験から、Antと比較して、Mavenは、モジュール間の依存関係を持つマルチモジュールプロジェクトを管理するためのより効率的で合理的でネイティブな方法を提供します.

プロジェクト構造:

my-project/
  common-lib/  <-- classic Java project, build as a jar library
  desktop-app/  <-- classic Java project, build as a jar application
  android-app/  <-- Android project, build as a apk application
  android-app-test/ <-- Android Test project, build as a apk application
  pom.xml

ルート pom.xml:

<modules>
  <module>common-lib</module>
  <module>desktop-app</module>
  <module>android-app</module>
  <module>android-app-test</module>
</modules>

android-maven-pluginを使用することで、マルチモジュール プロジェクトをリリースするための標準的で統一された方法を維持できます (より正確には、android-maven-plugin は Android サブモジュール プロジェクトのリリースをビルドするために使用されます)。 .

m2e と m2e-android (すべて Eclipse Marketplace から入手可能) の 2 つの Eclipse プラグインを使用することで、Eclipse クロス チームでマルチモジュール プロジェクトをインポート/開発/デバッグするための標準的で統一された方法を維持できます。

Maven はすべてを管理する資格があるため、Ant+Ivy を使用する必要はありません。

于 2012-05-08T23:00:51.070 に答える