maven+android archive
参考: http://www.flexlabs.org/2013/06/using-local-aar-android-library-packages-in-gradle-builds
今時な手法として良いかは知らんけど、例えばAndroidプロジェクトでライブラリプロジェクトを伴うけど、アプリプロジェクトとは別で開発されていてそれは社内なりのMaven Repositories(後術参考)を介して利用できる。それをやってみた
Maven Repositoriesに関して
まず社内(ってことにしておく)にMaven Repositoriesが必要になるが、詳しくは「リポジトリ管理ツール「Nexus」でMavenをさらに活用しよう!」を参考に進める。まぁ要はnexus OSSを使ってMaven Repositoriesを構築する。今回はcorporateっていう名前のRepositoryを作っておいた。ここにライブラリプロジェクトのAARパッケージングをデプロイして、それをアプリプロジェクトで使えるようにする
ライブラリプロジェクトのデプロイ
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath "com.android.tools.build:gradle:0.8.+"
}
}
version = "0.1"
apply plugin: "android-library"
apply plugin: "maven-publish"
android {
compileSdkVersion 19
buildToolsVersion "19.0.1"
defaultConfig {
versionName version
}
}
publishing {
publications {
maven(MavenPublication) {
groupId "sample.test"
artifactId "library"
artifact "${project.libsDir}/${project.name}-${project.version}.aar"
}
repositories {
maven {
credentials {
username "deployment"
password "deployment123"
}
url "http://[IP or domain]:8081/nexus/content/repositories/corporate"
}
}
}
}
maven-publishなプラグインに関しては公式ドキュメント読んだ方が手っ取り早いかと
あとはpublishタスクを動かす事でMaven Repositoriesにデプロイする事が出来る
アプリプロジェクトでMaven RepositoriesなAARライブラリを使う
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath "com.android.tools.build:gradle:0.8.+"
}
}
apply plugin: "android"
android {
compileSdkVersion 19
buildToolsVersion "19.0.1"
}
repositories {
mavenCentral()
maven {
url "http://[IP or domain]:8081/nexus/content/repositories/corporate"
}
}
dependencies {
compile "sample.test:library:0.1@aar"
}
な感じでライブラリプロジェクトをデプロイしたMaven Repositoriesから依存性を取って利用するっていう感じ