40

私は現在、ant を使用して Android プロジェクトを構築していますが、大規模なプロジェクトには対応できず、さまざまな成果物を維持するのが苦痛になっています。

私が検討している 2 つの代替案は、Facebook の Buck ( http://facebook.github.io/buck/ ) と、Google が Android スタジオで支援している Gradle ( http://tools.android.com/tech-docs/new-ビルドシステム/ユーザーガイド)。

それらを試して、それらのカバレッジを読むことに加えて、Stackoverflow の優れた人々に推奨事項を尋ねたいと思います。いずれかのツールをしばらく使用したことがある場合は、Buck はそれほど多くのカバレッジを得られなかったので、ボーナス ポイントがあります。

重要なポイントは

  • 開発ビルド専用のビルド速度
  • 同じコード ベースからの複数の成果物
  • 使いやすさ

私は他の選択肢にもオープンです。あなたは何を提案し、その理由は何ですか?

4

4 に答える 4

44

Buck のドキュメントの中心にあるように、「Buck は Android 用のビルド システムであり、コードとリソースで構成される再利用可能な小さなモジュールの作成を促進します。」

設計上、Buck は、既存のビルディング ブロックから新しいアプリを簡単に構成できるように、小さなモジュールを作成することをお勧めします。これは、複数の成果物を維持することが簡単であることを意味します。定義済みの構造にリポジトリを整理する必要がなく、ボイラープレートを排除します。マクロとジャンルを使用して、Buck のニーズに合わせてアドホック ビルド ステップを作成することもできます。(より正式な拡張システムが開発中です。)

また、スピード、特にインクリメンタル ビルドのスピードにも気を配っています。Buck には依存関係の強力な概念があるため、多くの場合、中間アーティファクトの再構築を回避できます。他のビルド システムもこれを実行しようとしますが (Ant など)、結果として正確性が犠牲になることがよくあります。私たちはしません。

IDE のサポートが重要であることは認識しています。確かに、Google と Gradle とのコラボレーションにより、Google はそこに足を踏み入れることができます。ただし、Buck には、Buck ビルド ファイルで定義された依存関係グラフから IntelliJ プロジェクトを生成するコマンドがあり、独自の IntelliJ プラグインの基礎を築いたので、これは私たちも深く気にかけていることです。

最後に、Android 用の Facebook、Facebook Messenger、および Instagram を構築するために Buck が使用されていることを覚えておいてください。バックは消えません。さらに、3 つのアプリすべて (および開発サイクルをさらに短縮するためのアプリの縮小バージョン) のコードは、Facebook の 1 つの Git リポジトリに存在するため、内部で Buck に取り組んでいる私たちは、複数の成果物をサポートする大規模なコードベースのニーズに敏感です。 .

于 2013-10-01T08:58:35.843 に答える
7

これは、現在の Android Studio + Gradle ビルド システムで10行の構成だけで BUCK ベースの使用を開始できるgradleプラグインOkBuckです。見てみな。

OkBuck を使用すると、gradle と buck の両方でプロジェクトをビルドでき、gradle と buck のすべての利点を利用できます。

于 2015-10-07T01:44:50.843 に答える