woshidan's loose leaf

ぼんやり勉強しています

少しbuild.gradleを読んだ。

http://gradle.monochromeroad.com/docs/userguide/application_plugin.html

Android Studioで入れた拡張で、コーディングのときに利用するものを使う。

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'

http://gradle.monochromeroad.com/docs/userguide/organizing_build_logic.html

ビルドスクリプトを実行するときに外部のライブラリを使う場合、そのライブラリをビルドスクリプトのクラスパスに追加する必要がある。

buildscript {
    ext.kotlin_version = '0.12.100'

    // 外部ライブラリの入っているリポジトリ
    repositories {
        jcenter()
        mavenCentral()
    }

    // 上記のリポジトリに入っているライブラリのパス
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

http://gradle.monochromeroad.com/docs/userguide/writing_build_scripts.html

上の中のextは拡張プロパティ。ext.property_name = valあるいは、ext { .. }内で定義して、他の箇所からproperty_nameで呼び出せるみたい。

http://int128.hatenablog.com/entry/20131205/1386212961

これまで書いたような設定は個々のbuild.gradleに書いたプロジェクトに反映される。 しかし、allprojectssubprojectsに書いた内容はすべてのprojectに反映される。

allprojects {
  // ルートプロジェクトを含む全プロジェクトに適用
  apply plugin: 'project-report'
}

subprojects {
  // サブプロジェクトに適用
  apply plugin: 'java'
  apply plugin: 'findbugs'
  sourceCompatibility = 1.7
}

利用するライブラリのパスを適宜つっこんでいく。

dependencies {
  compile fileTree(dir: 'libs', include: ['*.jar'])
  compile 'com.android.support:appcompat-v7:23.1.0'
  compile 'org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version'
}

結論

もう少しまじめに読もうと思って、Gradle徹底入門を買いました。