Gradle-overview

提供:Dev Guides
移動先:案内検索

Gradle-概要

「Gradleはオープンソースのビルド自動化システムです」

AntとMavenは、JAVAマーケットプレイスで大きな成功を収めました。 Antは2000年にリリースされた最初のビルドツールであり、手続き型プログラミングのアイデアに基づいて開発されています。 後で、Apache-IVYの助けを借りてネットワーク経由でプラグインと依存関係管理を受け入れる機能で改善されます。 主な欠点は、ビルドスクリプトを記述するためのフォーマットとしてのXMLであり、階層的であることは手続き型プログラミングには適しておらず、XMLは扱いにくいほど大きくなる傾向があります。

Mavenは2004年に導入されました。 ANTに比べて大幅に改善されています。 構造を変更し、ビルド仕様の作成にXMLを使用し続けます。 Mavenは規則に依存しており、ネットワーク経由で依存関係をダウンロードできます。 Mavenの主な利点は、そのライフサイクルです。 複数のプロジェクトに対して同じライフサイクルを継続的に実行します。 これには柔軟性が犠牲になります。 Mavenは、依存関係管理の問題にも直面しています。 同じライブラリのバージョン間の競合をうまく処理せず、複雑なカスタマイズされたビルドスクリプトは、実際にはANTよりもMavenで記述するのが困難です。

最後に、Gradleは2012年に登場しました。 Gradleは、両方のツールの効率的な機能を備えています。

Gradleの特徴

以下は、Gradleが提供する機能のリストです。

  • 宣言型ビルドと慣習ビルド-Gradleは、Groovy言語に基づいた個別のドメイン固有言語(DSL)で利用できます。 Gradleは宣言型言語要素を提供します。 また、これらの要素は、Java、Groovy、OSGI、Web、およびScalaの慣例ごとのサポートも提供します。
  • 依存関係ベースのプログラミングの言語-宣言型言語は、ビルドで完全に活用できる汎用タスクグラフの上部にあります。
  • ビルドの構築-Gradleでは、最終的に共通の設計原則を適用できます。 あなたのビルドに。 ビルドに最適な構造を提供するため、適切に構造化され、メンテナンスが容易な、包括的なビルドを設計できます。
  • Deep API -このAPIを使用すると、構成を監視およびカスタマイズできます。 コアへの実行動作。
  • * Gradleスケール*-Gradleは、シンプルで単一のプロジェクトビルドから巨大なエンタープライズマルチプロジェクトビルドまで、生産性を簡単に向上させることができます。
  • マルチプロジェクトビルド-Gradleはマルチプロジェクトビルドをサポートし、部分ビルドをサポートします。 サブプロジェクトをビルドする場合、Gradleは依存するすべてのサブプロジェクトをビルドします。
  • ビルドを管理するさまざまな方法-Gradleは、依存関係を管理するためのさまざまな戦略をサポートしています。
  • * Gradleは最初のビルド統合ツールです*-GradleはANTで完全にサポートされています タスク、依存関係を公開および取得するためのMavenおよびlvyリポジトリインフラストラクチャ。 Gradleは、Maven pom.xmlをGradleスクリプトに変換するコンバーターも提供します。
  • 移行の容易さ-Gradleは、どのような構造にも簡単に適応できます。 だから ライブスクリプトをビルドできるのと同じブランチでGradleビルドをいつでも開発できます。
  • Gradle Wrapper -Gradle Wrapperでは、GradleがインストールされていないマシンでGradleビルドを実行できます。 これは、サーバーの継続的な統合に役立ちます。
  • 無料のオープンソース-Gradleはオープンソースプロジェクトであり、Apacheの下でライセンスされています ソフトウェアライセンス(ASL)。
  • Groovy -GradleのビルドスクリプトはGroovyで記述されています。 Gradleの全体設計は 厳格なフレームワークとしてではなく、言語としての使用を指向しています。 また、Groovyでは、いくつかの抽象化を使用して独自のスクリプトを作成できます。 Gradle API全体は、Groovy言語で完全に設計されています。

なぜGroovyなのか?

完全なGradle APIは、Groovy言語を使用して設計されています。 これは、XMLよりも内部DSLの利点です。 Gradleは、その中心にある汎用ビルドツールです。主な焦点はJavaプロジェクトです。 このようなプロジェクトでは、チームメンバーはJavaに非常に精通しているため、ビルドはすべてのチームメンバーに対して可能な限り透過的である必要があります。

Python、Groovy、Rubyなどの言語は、フレームワークの構築に適しています。 Groovyが選ばれた理由は、Javaを使用している人々にとってはるかに優れた透明性を提供するからです。 Groovyの基本構文はJavaと同じです。 Groovyは、さらに多くの機能を提供します。