🌍

gradleコマンドラインをつかってみた!

に公開

Command-Line Interface Basics

コマンドラインインターフェイスの基本

前回の記事の続きになります。
https://zenn.dev/forgehack/articles/df358ba9e4c520

記事の対象者

  • build.gradle & build.gradle.ktsについて知りたい
  • コマンドラインインターフェイスを使ってみたい

公式の解説を翻訳して引用しております。

コマンドラインインターフェイスは、IDEの外側のGradleと相互作用する主要な方法です。

Gradle CLIは、ターミナルからGradleビルドと対話する主要な方法です。柔軟で強力なコマンドラインオプションを通じて、タスクを実行したり、ビルドを検査したり、依存関係を管理したり、ロギングを制御したりできます。

実行中のコマンド
Gradleコマンドを実行するには、次の単純な構造を使用します。

gradle [taskName...] [--option-name...]

スペースで区切られた1つ以上のタスクを指定できます。

gradle [taskName1 taskName2...] [--option-name...]

たとえば、buildという名前のタスクを実行するには、単に入力してください。

gradle build

最初に掃除してから構築します。

gradle clean build

コマンドラインオプション
Gradleコマンドには、動作を調整するためのさまざまなオプションを含めることができます。オプションは、タスク名の前後に表示される可能性があります。

gradle [--option-name...] [taskName...]

For options that accept a value, use an equals sign (=) for clarity:
値を受け入れるオプションについては、明確にするために等しい記号(=)を使用します。

gradle [...] --console=plain

いくつかのオプションは切り替えられ、反対のフォームがあります。たとえば、ビルドキャッシュを有効または無効にするには:

gradle build --build-cache
gradle build --no-build-cache

Gradleは、利便性のためにショートオプションの同等物も提供します。次の2つのコマンドは同等です。

gradle --help
gradle -h

タスクの実行

Gradleでは、タスクは特定のプロジェクトに属します。特にマルチプロジェクトビルドで実行するタスクを実行するタスクを明確に示すために、プロジェクトセパレーターとしてコロン(:)を使用します。

ルートプロジェクトレベルでテストという名前のタスクを実行するには、以下を使用します。

gradle :test

ネストされたサブプロジェクトの場合、コロンを使用してフルパスを指定します。

gradle :subproject:test

コロンなしでタスクを実行すると、Gradleは現在のディレクトリのプロジェクトコンテキストでタスクを実行します。

gradle test

タスクオプション

一部のタスクは、独自の特定のオプションを受け入れます。これらのオプションをタスク名の直後に渡します。

カスタムオプションを渡す方法は次のとおりです。

gradle taskName --exampleOption=exampleValue

Using Intellj IDEA

Kotlinプロジェクトを作成して実行してみたのですがコマンド違った?

これはダメで

./gradle clean build

gradlewというwがついたのは実行できる。Wrapperの方で実行しているのでしょう。

./gradlew clean build

他のコマンドも同様に、wがついた方で実行する。

buildという名前のタスクを実行

./gradlew build

ビルドキャッシュを有効または無効を実行する。

./gradlew build --build-cache
./gradlew build --no-build-cache

helpのコマンドを実行する。-hだと短いコマンドのようですね。どちらでやっても実行結果は同じ。

./gradlew --help
./gradlew -h

テストのコマンドも実行してみた

./gradlew test
./gradlew :subproject:test

最後に

コマンドラインの操作を学習してみましたところ普段やっているAndroid開発では、gradlewというwがついたWrapperの方で実行する必要がなぜあるのか、公式のコマンドをそのまま実行できないことに気づくことができました。

何となくコマンドをcopy & pasteは危ないですね💦

Discussion