メモ
android studioから入ってるためgradleの基礎は飛ばす。
GVM
gradlewは環境変数のJAVA_HOME
が必要。
macOS
export JAVA_HOME=`/usr/libexec/java_home`
install
cur -s get.gvmtool.net | bash
GVMはインストール可能なパッケージの最新情報を取得するため、起動ごとにインターネットに接続します。
オフラインの場合は、ネットにアクセスを行ってしまいレスポンスが悪くなる。
gvm offline enable
戻す場合
gvm offline disable
Gradle install
gvm install gradle
その他有用なコマンド
gvm list gradle
gvm install gradle <version>
gvm default gradle <version>
本体
~/.gvm/gradle<version>
環境変数
export GRADLE_HOME=<GRADLE_HOME>
export PATH=$GRADLE_HOME/bin:$PATH
cf. JAVA_OPTS
, GRADLE_OPTS
Gradleスクリプトは、Groovyスクリプトです。
default: UTF-8
-Dfile.encoding
で指定。
ログレベル
gradle -i <task>
- i(--info): info
- s(--stacktrace): stacktrace
- S(--full-stacktrace): full stacktrace
- d(--debug): debug
よく使う -b(--build-file)
build.gradleとは異なるファイル名を使う場合。
gradle init --type java-library
````
gradle --gui
ってのもある見たい。
pluginによってタスクが実装される
Javaプラグインの場合
compileJavaなど、
applicationプラグイン
gradle run
初期化スクリプトの規約
* コマンドライン引数 -I (--init-script)で指定 - 規約なし。配置場所ファイル名とも自由
* <HOME>/.gradle ディレクトリに配置 - ファイル名がinit.gradleのものを初期化スクリプトとする
* <HOME>/.gradle/init.d ディレクトリに配置する - ファイルの拡張子が.gradleのファイルを初期化スクリプトとする
* <GRADLE_HOME>/init.d ディレクトリに配置する - ファイル拡張子が.gradleのファイルを初期化スクリプトとする
Gradleが自動ロードするプロパティファイル。
grale.properiesにproxy情報などが設定できる。
優先順
* コマンドライン-D (--system-prop) 指定
* <PROJECT_HOME>ディレクトリに配置 - gradle.properties
* <HOME>ディレクトリに配置 - gradle.properties
シングルプロジェクトとマルチプロジェクトの判定は
settings.gradleで行う。
設定スクリプト(settings.gradle)はルートプロジェクトの直下に配置。
マルチプロジェクトの場合は、設定スクリプトは必須。
コマンドラインは -c (--setting-file)オプションで指定。
それ以外は、Gradleの規約に従った場所を探索。
1. カレントディレクトリを探索
2. カレントディレクトリの親を探索
3. カレントディレクトリにmasterディレクトリがあり、その配下を探す。
-u (--no-search-upward)が指定された場合は 2,3は行わない。
### タスクグラフ
タスクは1回のみ実行が保証。
依存関係があれば、従う。
取り敢えず4つ
* assemble task
* check task
* build task
* clean task
gradle tasks gradlew tasks --all
# 標準出力
* taskでOutputStreamを作成
* task実行後doLastなどでOutputStreamの内容を出力
def stdout = new ByteArrayOutputStream()
gradlew -v ```
Android Tool Project Site 古いためか転送される
https://developer.android.com/studio/build/index.html