**常用結構**?參考[Google's guide on Gradle for Android](http://tools.android.com/tech-docs/new-build-system/user-guide)
**小任務**?除了(shell, Python, Perl, etc)這些腳本語言,你也可以使用Gradle 制作任務。 更多信息請參考[Gradle's documentation](http://www.gradle.org/docs/current/userguide/userguide_single.html#N10CBF)。
**密碼**?在做版本release時你app的?`build.gradle`你需要定義?`signingConfigs`.此時你應該避免以下內容:
_不要做這個_?. 這會出現在版本控制中。
~~~
signingConfigs {
release {
storeFile file("myapp.keystore")
storePassword "password123"
keyAlias "thekey"
keyPassword "password789"
}
}
~~~
而是,建立一個不加入版本控制系統的`gradle.properties`文件。
~~~
KEYSTORE_PASSWORD=password123
KEY_PASSWORD=password789
~~~
那個文件是gradle自動引入的,你可以在`buld.gradle`文件中使用,例如:
~~~
signingConfigs {
release {
try {
storeFile file("myapp.keystore")
storePassword KEYSTORE_PASSWORD
keyAlias "thekey"
keyPassword KEY_PASSWORD
}
catch (ex) {
throw new InvalidUserDataException("You should define KEYSTORE_PASSWORD and KEY_PASSWORD in gradle.properties.")
}
}
}
~~~
**使用 Maven 依賴方案代替使用導入jar包方案**?如果在你的項目中你明確使用率 jar文件,那么它們可能成為永久的版本,如`2.1.1`.下載jar包更新他們是很繁瑣的, 這個問題Maven很好的解決了,這在Android Gradle構建中也是推薦的方法。你可 以指定版本的一個范圍,如`2.1.+`,然后Maven會自動升級到制定的最新版本,例如:
~~~
dependencies {
compile 'com.netflix.rxjava:rxjava-core:0.19.+'
compile 'com.netflix.rxjava:rxjava-android:0.19.+'
compile 'com.fasterxml.jackson.core:jackson-databind:2.4.+'
compile 'com.fasterxml.jackson.core:jackson-core:2.4.+'
compile 'com.fasterxml.jackson.core:jackson-annotations:2.4.+'
compile 'com.squareup.okhttp:okhttp:2.0.+'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.0.+'
}
~~~