# How to declare multiple dependency with the same group

**URL:** <https://discuss.gradle.org/t/how-to-declare-multiple-dependency-with-the-same-group/27483>\
**Category:** Help/Discuss\
**Tags:** buildship\
**Created:** [June 25, 2018, 11:26am UTC](https://discuss.gradle.org/t/how-to-declare-multiple-dependency-with-the-same-group/27483 "2018-06-25T11:26:48Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![stepjacky](https://avatars.discourse-cdn.com/v4/letter/s/91b2a8/32.png) [@stepjacky](https://discuss.gradle.org/u/stepjacky)\
**Post date:** [June 25, 2018, 11:26am UTC](https://discuss.gradle.org/t/how-to-declare-multiple-dependency-with-the-same-group/27483/1 "2018-06-25T11:26:48Z")

</div>

Hi, guys ,can gradle declare dependenices which has the same group like below style

> compile (‘org.groupname’:[‘nameone’,‘nametow’,‘namethree’,…],‘versionnum’)

or difference version like this：

> compile(‘org.groupname’,[‘nameone:version1’,‘nametwo:version2’,…])

instead of duplicate declare group or version numbers

---

<div class="post-metadata">

**Author:** ![ddimitrov](https://sea1.discourse-cdn.com/gradle/user_avatar/discuss.gradle.org/ddimitrov/32/141_2.png) [@ddimitrov](https://discuss.gradle.org/u/ddimitrov)\
**Post date:** [June 25, 2018, 2:25pm UTC](https://discuss.gradle.org/t/how-to-declare-multiple-dependency-with-the-same-group/27483/2 "2018-06-25T14:25:28Z")

</div>

Using a bit of Groovy should do it:

```gradle
dependencies {
  def fooBundle = [group: com.acme.foo, version: '1.2.3']
  compile(['core', 'spi', 'impl'].collect { [module: it] << fooBundle })
}

```

Alternatively, you may define the `fooBundle` in a central location, or decide to use Maven-style BOM’s.

---

<div class="post-metadata">

**Author:** ![Lance](https://sea1.discourse-cdn.com/gradle/user_avatar/discuss.gradle.org/lance/32/787_2.png) [@Lance](https://discuss.gradle.org/u/Lance)\
**Post date:** [June 25, 2018, 2:50pm UTC](https://discuss.gradle.org/t/how-to-declare-multiple-dependency-with-the-same-group/27483/3 "2018-06-25T14:50:58Z")

</div>

If you simply want to define your groups and versions in a single place you can do

```gradle
ext {
   groups = [foo: 'org.groupname']
   versions = [foo: '1.2.3']
}
dependencies {
    compile "${groups.foo}:nameone:${versions.foo}"
    compile "${groups.foo}:nametwo:${versions.foo}"
    compile "${groups.foo}:namethree:${versions.foo}"
}

```

As @ddimitrov mentioned, Gradle 4.6 added [BOM import](https://docs.gradle.org/4.6/release-notes.html#bom-import) support which would also solve the problem

---

<div class="post-metadata">

**Author:** ![stepjacky](https://avatars.discourse-cdn.com/v4/letter/s/91b2a8/32.png) [@stepjacky](https://discuss.gradle.org/u/stepjacky)\
**Post date:** [June 28, 2018, 9:21am UTC](https://discuss.gradle.org/t/how-to-declare-multiple-dependency-with-the-same-group/27483/4 "2018-06-28T09:21:17Z")

</div>

thanks for the good idea,that is a bit usage for me

---

<div class="post-metadata">

**Author:** ![stepjacky](https://avatars.discourse-cdn.com/v4/letter/s/91b2a8/32.png) [@stepjacky](https://discuss.gradle.org/u/stepjacky)\
**Post date:** [June 28, 2018, 9:22am UTC](https://discuss.gradle.org/t/how-to-declare-multiple-dependency-with-the-same-group/27483/5 "2018-06-28T09:22:54Z")

</div>

Thanks for the soluation ,that looks like a good idea ,guy!
