1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GradleでBOMを指定する (MavenのDependency Management相当)

Posted at

背景

今やっているPRJで同一groupIdの複数のモジュールを取り込む機会があって、ちまちまバージョン指定するのが嫌だったのでやり方を調べた。

結論

BOMが提供されている場合、implementation platformをつかう

build.gradle
dependencies {
    // gcp
    implementation platform('com.google.cloud:spring-cloud-gcp-dependencies:4.4.0')
    implementation 'com.google.cloud:spring-cloud-gcp-starter-storage'
    implementation 'com.google.cloud:spring-cloud-gcp-starter-bigquery'
    implementation 'com.google.cloud:spring-cloud-gcp-starter-logging'
}

ちなみにGradle5.2以降でしかこの書き方はできないっぽい。新しいバージョンを使うようにしましょう

その他

Spring Boot

Spring Bootは上記を使わなくてもpluginを読み込むだけでバージョンが指定できる。楽チン

build.gradle
plugins {
    id 'org.springframework.boot' version '3.1.0' // こいつでSpring Bootのバージョン指定
    id 'io.spring.dependency-management' version '1.1.0' // これも必須。入れないと依存解決ができない
}

Dependency Management Plugin

上記で読み込んだio.spring.dependency-managementを使うと、implementation platformを使わなくても以下のようにも指定できる

build.gradle
dependencyManagement {
    imports {
        mavenBom 'com.google.cloud:spring-cloud-gcp-dependencies:4.4.0'
    }
}

BOMが指定できない場合でも、以下のような書き方で共通のバージョンを指定することもできる

build.gradle
dependencyManagement {
    dependencies {
        dependencySet(group:'com.google.cloud', version: '4.4.0') {
            entry 'spring-cloud-gcp-starter-storage'
            entry 'spring-cloud-gcp-starter-bigquery'
            entry 'spring-cloud-gcp-starter-logging'
        }
    }
}

参考

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?