Goalist Developers Blog

Gradleを使ってAWS SDKのバージョン・依存関係を管理する

はじめに

こんにちは。ゴーリスト開発のイイオです。

ゴーリストでは大変にAWSを使っていて、400台以上のEC2インスタンスが蠢いてます。
(常時起動なのはそこまで多くありません)
そんなわけでAWS SDK for Javaもズンドコと使っています。

最近こころみにGradleでJavaプロジェクトを作ってSDKを使ったので
今回は「Gradleを使ってSDKのバージョン・依存関係を管理する手順」を書きたいと思います。

公式ドキュメントはこちら

docs.aws.amazon.com

準備

1. Gradleインストール

MacならHomebrewでイッパツ

brew update && brew install gradle

gradle.org

2. GradleでJavaプロジェクト作成

任意の場所でプロジェクト作るだけ

gradle init

build.gradle設定

1. SDKモジュールの依存関係管理のために Dependency management プラグインを導入

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "io.spring.gradle:dependency-management-plugin:1.0.0.RC2"
    }
}

apply plugin: "io.spring.dependency-management"

2. Dependency management で AWS SDK BOM を追加

SDKのバージョンはここで指定できる

dependencyManagement {
    imports {
        mavenBom 'com.amazonaws:aws-java-sdk-bom:1.10.77'
    }
}

Maven Repository: com.amazonaws » aws-java-sdk-bom

3. dependenciesセクションでプロジェクト上で利用するSDKモジュールを指定

dependencies {
    compile 'com.amazonaws:aws-java-sdk-s3'
    testCompile group: 'junit', name: 'junit', version: '4.11'
}

以上をまとめるとこんな感じに

build.gradle

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "io.spring.gradle:dependency-management-plugin:1.0.0.RC2"
    }
}
apply plugin: "io.spring.dependency-management"
dependencyManagement {
    imports {
        mavenBom 'com.amazonaws:aws-java-sdk-bom:1.10.77'
    }
}

apply plugin: 'java'

sourceCompatibility = 1.8
targetCompatibility = 1.8
tasks.withType(JavaCompile) {
    options.encoding = 'UTF-8'
}

repositories {
    jcenter()
}

dependencies {
    compile 'org.slf4j:slf4j-api:1.7.22'
    testCompile 'junit:junit:4.12'
    compile 'com.amazonaws:aws-java-sdk-s3'
}

これでOKワーイズンドコズンドコ

あとは

お好きなIDEで開発するのみ

第38章 Eclipse プラグイン

第39章 IDEAプラグイン

Gradle初心者ですんで何か間違っている部分あれば、ぜひに報告をいただきたいです。