Twitterでふぁぼったものをひたすら試します

Gradleメモ

またこんどGradle使う機会があったら勉強する

複数モジュール

設定例

/
┣ settings.gradle
┣ build.gradle
┣ モジュール1/
┃   ┗ build.gradle
┗ モジュール2/
    ┗ build.gradle

【settings.gradle】

rootProject.name = 'プロジェクト名'
include 'モジュール1'
include 'モジュール2'

【build.gradle】

同じ依存先同じバージョンを使いまわしたいときに

ext {
    hoge_version = 'x.y.z'

    commonDependencies = [
            hoge: "come.example:example:$hoge_version",
    ]
}

【サブモジュール/build.gradle】

dependencies {
    Map<String, String> dependencies = rootProject.ext.commonDependencies

    implementation dependencies.hoge
}

Main関数

apply plugin: 'application'
mainClassName = 'com.example.Main'

でMain関数呼べる

sourceSets

sourceSets {
    main.java.srcDirs += 'src/main/kotlin'
    test.java.srcDirs += 'src/test/kotlin'
}

Kotlinなのに src/hoge/java に置いてはつまらないとき用

dependencies

  • compile
    • 古い
    • 注: compile、provided、apk は 現在も利用可能です。 ただし、これらは Android プラグインの次期メジャー リリースでは削除されます。
  • api
  • implementation
    • This dependency is used internally, and not exposed to consumers on their own compile classpath.

jar

jar {
    from {
        configurations.compile.collect {
            if (it.name.contains('kotlin-stdlib')) {
                []
            } else {
                it.isDirectory() ? it : zipTree(it)
            }
        }
    }
}

いらないものがあれば適当に空配列を返しておく
configurations.apiconfigurations.implementation では回収してくれないので compile を使わざるを得ない(?)

参考文献

Migrate to Android Plugin for Gradle 3.0.0  |  Android Developers