Gradle is a project automation tool that builds upon the concepts of Apache Ant and Apache Maven and introduces a Groovy-based domain-specific language instead of the more traditional XML form of declaring the project configuration.
Unlike Apache Maven, which defines lifecycles, and Apache Ant, where targets are invoked based upon a depends-on partial ordering, Gradle uses a directed acyclic graph ("DAG") to determine the order in which tasks can be run.
Gradle was designed for multi-project builds which can grow to be quite large, and supports incremental builds by intelligently determining which parts of the build tree are up-to-date, so that any task dependent upon those parts will not need to be re-executed.
ライフサイクルを定義するApache Mavenや、部分的な注文に依存することを基盤にターゲットが切願されるApache Antとは異なり、Gradleはどのタスクを行うか出来るかその順番を決定するために指定されたアクリル製のグラフ(DAG)を使用する。Gradleはかなり大掛かりになる可能性がある汎用プロジェクト構築のために設計され、どの部分のビルドツリーが最新のものであるかを人工知能的に決定することにより追加のビルドをサポートするので、それらのパーツに依存するタスクは全て再度実行不要である。
lifecycleを定義するApache Mavenや、依存関係(半順序関係)に従ってtargetが呼び出されるApache Antとは違い、Gradleは有向非巡回グラフ(DAG)を用いて、どのタスクから順番に実行できるかを決定します。
Gradleはマルチプロジェクト(複数のプロジェクトをまとめて扱うプロジェクト)のビルドのためにデザインされており、非常に大きなプロジェクトに対応できます。さらに、合理的に決定されるインクリメンタルビルドをサポートしており、それによりビルドツリーのどの部分が最新の状態であるのかを見極めます。その為、Gradleは最新の状態にある部分についてビルドの再実行を必要としません。
The initial plugins are primarily focused around Java, Groovy and Scala development and deployment, but more languages and project workflows are on the roadmap.
The Java plugin emulates many of the expected Maven lifecycles as tasks in the directed acyclic graph of dependencies for the inputs and outputs of each task. For this simple case, the build task depends upon the outputs of the check and assemble tasks. Likewise, check depends upon test, and assemble depends upon jar.
Javaプラグインは、各タスクのインプット、アウトプットに対する依存状態の非環式グラフに含まれるタスクとしてMavenライフサイクルで期待されていたライフサイクルの多くと競合している。このシンプルなケースのために、ビルドタスクはチェックおよびアセンブル用タスクのアウトプットに依存している。このように、チェックはテストに依存し、アセンブルはjarに依存している。
GradleにおけるJavaのプラグインはMavenにおける多くのlifecycleをエミュレートし、有向非巡回グラフにおける各タスクの入力と出力の依存性を、タスクとして書き出します。
この簡単なケースでは、buildタスクは、checkとassembleタスクに依存しています。同じようにcheckタスクはtestタスクに依存しており、assembleタスクはjarタスクに依存しています。
訂正前:
GradleにおけるJavaのプラグインはMavenにおける多くのlifecycleをエミュレートし、有向非巡回グラフにおける各タスクの入力と出力の依存性を、タスクとして書き出します。
訂正後:
GradleにおけるJavaのプラグインは、Mavenではlifecycleとして扱われるであろうものを、タスクとしてエミュレートします。その各タスクは有向非巡回グラフにおける入力と出力の依存関係となっています。
「アクリル製のグラフ」→「非環式グラフ」でお願いします。