gradleコマンドラインをつかってみた!
Command-Line Interface Basics
コマンドラインインターフェイスの基本
前回の記事の続きになります。
記事の対象者
- 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