AndroidStudioでgraldeビルドになった。 で、ライブラリの作り方がよくわかんないので、まとめた。
jarの作り方
src/main/java 以下にパッケージとコードをおく。
$ tree
.
├── build.gradle
└── src
└── main
└── java
└── me
└── mattak
└── sample_library
└── HelloPackage.java
build.gradleは以下の通り
$ cat build.gradle
apply plugin: 'java'
apply plugin: 'maven-publish'
version = '0.0.1'
group = 'me.mattak.sample_library'
repositories {
mavenCentral()
}
dependencies {
compile "com.google.android:android:4.1.1.4"
}
uploadArchives {
repositories {
flatDir {
dirs 'repos'
}
}
}
HelloPackage.java
$ cat HelloPackage.java
package me.mattak.sample_library;
import android.content.Context;
public class HelloPackage {
private Context mContext;
public HelloPackage (Context context) {
mContext = context;
}
public String getPackageName() {
return mContext.getPackageName();
}
}
ビルド
$ gradle uploadArchives
$ tree
.
├── build
│ ├── classes
│ │ └── main
│ │ └── me
│ │ └── mattak
│ │ └── sample_library
│ │ └── HelloPackage.class
│ ├── dependency-cache
│ ├── ivy.xml
│ ├── libs
│ │ └── SampleLibrary-0.0.1.jar
│ └── tmp
│ └── jar
│ └── MANIFEST.MF
├── build.gradle
├── repos
│ ├── SampleLibrary-0.0.1.jar
│ └── ivy-0.0.1.xml
└── src
└── main
└── java
└── me
└── mattak
└── sample_library
└── HelloPackage.java
これで、repos以下に、SampleLibrary-0.0.1.jarができる.
android-libraryの作成
res/以下などもまとめたaarファイルを作成する方法
.
├── build.gradle
└── src
└── main
├── AndroidManifest.xml
├── java
│ └── me
│ └── mattak
│ └── sample_android_library
│ └── HelloLibrary.java
└── res
└── values
└── strings.xml
buil.gradle
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4.2'
}
}
apply plugin: 'android-library'
apply plugin: 'maven'
version = '0.0.1'
group = 'me.mattak.sample_android_library'
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 16
versionCode 1
versionName '0.0.1'
}
}
uploadArchives {
repositories {
mavenDeployer {
repository url: "file://${your_repository_location}"
pom.version = version
pom.groupId = 'me.mattak.sample_android_library'
pom.artifactId = 'sample-android-lib'
}
}
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="me.mattak.sample_android_library"
android:versionCode="1"
android:versionName="0.0.1">
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
</manifest>
ビルド
$ gradle uploadArchives
${your_repository_location}にレポジトリができていればOK
aarを利用する
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
repositories {
maven {
url 'file://${your_repository_location}'
}
}
dependencies {
compile 'me.mattak.sample_android_library:sample-android-lib:0.0.1'
compile files('libs/android-support-v4.jar')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 8
targetSdkVersion 17
}
}
このbuild.gradleがあれば、利用可能。