またこんど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
api
- This dependency is exported to consumers, that is to say found on their compile classpath.
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.api
や configurations.implementation
では回収してくれないので compile
を使わざるを得ない(?)
参考文献
Migrate to Android Plugin for Gradle 3.0.0 | Android Developers