ページ

ラベル Gradle の投稿を表示しています。 すべての投稿を表示
ラベル Gradle の投稿を表示しています。 すべての投稿を表示

2015年12月3日木曜日

Gradleをちゃんと使ってみる 2

今回は以前Eclipseで作成したAndroidの自作ライブラリを
gradleでビルドできるようにしたいと思います。

   Android用のテンプレートbuild.gradleを作成


Androidの公式ガイドページに必要最低限の Androidアプリをビルドする
build.gradleが乗っていたのでそいつを使います。
buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.1'
    }
}

apply plugin: 'android-library' # [1]

android {
    compileSdkVersion 23
    buildToolsVersion "23.1.0" #[2]
}
[1] com.android.applicationとなっていたものを今回ライブラリを作成するので
android-libraryに修正しています。
[2] に関しては自分の環境に合わせてください。
ここで、AndroidSDKの場所をどこかに設定しとかないといけません。
環境変数ANDROID_HOMEに設定するか、build.gradleと同じ階層にlocal.propertiesを作成し以下のように設定します
sdk.dir={AndroidSDKのパス}
この時点でgradle tasksを実行し成功すれば準備はOKです

   gradle wrapperの作成


gradleには別の使う人がgradleを別途インストールしなくても, 自動で特定のgradleのバージョンをインストールし、配布した人と同じgradleのバージョンでビルドできるgradle wrapperという機能があります。
以下のタスクを実施
$ gradle wrapper
すると
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
が追加されたと思います。配布された人はgradlew.bat(Windows用)。gradlew(その他OS用)
を実行する事でgradleコマンドと同じように使えます

   build.gradle作成例


プロジェクト毎に記述が異なると思いますが、↓の例はこちらで公開している
プロジェクトのbuild.gradleになります。
buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.1'
    }
}

apply plugin: 'android-library'

repositories {
    flatDir {
        dirs 'libs'
    }
}

dependencies {
    compile 'com.android.support:support-v4:XX.X.X'
}

android {
    compileSdkVersion XX
    buildToolsVersion "XX.X.X"
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['res']
        }
    }
}
特別な事はしてないですが、サポートライブラリの読み込みやAndroidManifest.xml
指定などを追加しています。
gradle clean build
├── build
│   ├── outputs
│   │   ├── aar
│   │   │   ├── Monaka-debug.aar
│   │   │   └── Monaka-release.aar
が作成されていれば成功です。

2015年11月29日日曜日

Gradleをちゃんと使ってみる 1

AndroidStudioでお世話になっているGradleですが
一からちゃんと使った事がないので、ちゃんと使ってみます
そもそも・・・
Gradleとは
Gradleは、Groovyで書かれたビルドシステム
※Groovyは、Java VM上で動作する動的なスクリプト言語
とあります。

   インストール


Gradleのインストール方法が以下の2パターンある模様
  • 公式サイトからバイナリをダウンロードしてインストール
  • GVMを使用する
今回はGVM(Groovy enVironment Manager)を使ってみる
rubyのRVMみたいなもんで、複数バージョンのGradleを管理できる
以下コマンドでインストール
$ curl -s get.gvmtool.net | bash
現時点ではSDKMANというのに変更されているらしく、上のコマンドを実行すると
SDKMANがインストールされるが、gvmコマンドはsdkコマンドのエイリアスとして設定されます
$ which gvm
gvm: aliased to sdk
インストール可能なGradleの一覧を表示
$ gvm list gradle
とりあえず現時点で最新の2.9をインストール
$ gvm install gradle 2.9
動作確認
$ gradle -version

   とりあえず、Hello World


おきまりのHello WorldをGradleで書いてみたいと思います
build.gradle
task helloworld << {
  println "Hello World!"
}
gradle helloworldで実行してみる
:helloworld
Hello World!

BUILD SUCCESSFUL
上のように成功になれば準備はOK

   Javaクラスのコンパイル&実行


単純なJavaのクラスを作成
package sample;

public class Sample {

  public static void main(String[] args) {
    System.out.println("print from Sample class");
  }
}
build.gradleを以下に編集
apply plugin: "java"

repositories {
  mavenCentral()
}
この時のフォルダ構成は以下
.
├── build.gradle
└── src
    └── main
        └── java
            └── sample
                └── Sample.java

早速コンパイルしてみる
$ gradle compileJava
:compileJava

BUILD SUCCESSFUL

Total time: 5.966 secs
ビルドに成功するとbuildディレクトリが作成され、
build/classes/main/sampleにコンパイルされたSample.classが作成されている
.
├── build
│   ├── classes
│   │   └── main
│   │       └── sample
│   │           └── Sample.class ★
│   ├── dependency-cache
│   └── tmp
│       └── compileJava
├── build.gradle
└── src
    └── main
        └── java
            └── sample
                └── Sample.java
実行してみる
$ java -cp build/classes/main sample.Sample
print from Sample class
上のように表示されれば成功
作成されたbuildを消すには
$ gradle clean
で消えます