# Add Multiple Maven Dependencies Dynamically

**URL:** <https://discuss.gradle.org/t/add-multiple-maven-dependencies-dynamically/6874>\
**Category:** Old Forum Archive\
**Created:** [September 25, 2013, 3:50pm UTC](https://discuss.gradle.org/t/add-multiple-maven-dependencies-dynamically/6874 "2013-09-25T15:50:00Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Kevin\_O\_Neal](https://sea1.discourse-cdn.com/gradle/user_avatar/discuss.gradle.org/kevin_o_neal/32/917_2.png) [@Kevin\_O\_Neal](https://discuss.gradle.org/u/Kevin_O_Neal)\
**Post date:** [September 25, 2013, 3:50pm UTC](https://discuss.gradle.org/t/add-multiple-maven-dependencies-dynamically/6874/1 "2013-09-25T15:50:00Z")

</div>

I have a dynamically generated list of dependencies.

```gradle
def myRequirments = ['jar1', 'jar2', 'jar3']

```

I would like to create a maven dependencies on these jars, something like:

```gradle
buildscript {
    repositories {
            myRequirments.each {
            maven { url it }
            }
    }
}

```

How would I do this?

---

<div class="post-metadata">

**Author:** ![Peter\_Niederwieser](https://avatars.discourse-cdn.com/v4/letter/p/9f8e36/32.png) [@Peter\_Niederwieser](https://discuss.gradle.org/u/Peter_Niederwieser)\
**Post date:** [September 25, 2013, 4:19pm UTC](https://discuss.gradle.org/t/add-multiple-maven-dependencies-dynamically/6874/2 "2013-09-25T16:19:00Z")

</div>

I don’t understand what you are trying to achieve. Can you elaborate?

---

<div class="post-metadata">

**Author:** ![Kevin\_O\_Neal](https://sea1.discourse-cdn.com/gradle/user_avatar/discuss.gradle.org/kevin_o_neal/32/917_2.png) [@Kevin\_O\_Neal](https://discuss.gradle.org/u/Kevin_O_Neal)\
**Post date:** [September 25, 2013, 5:35pm UTC](https://discuss.gradle.org/t/add-multiple-maven-dependencies-dynamically/6874/3 "2013-09-25T17:35:00Z")

</div>

Peter, I had a bit of a brain glitch when I wrote this post. What I meant to say is that I want to add multiple repository urls.

```gradle
def myRepos = ['http://repo1', 'http:repo2', 'http:repo3']

```

```gradle
buildscript {
    repositories {
            myRepos.each {
               maven { url it }
            }
    }
}

```

---

<div class="post-metadata">

**Author:** ![Peter\_Niederwieser](https://avatars.discourse-cdn.com/v4/letter/p/9f8e36/32.png) [@Peter\_Niederwieser](https://discuss.gradle.org/u/Peter_Niederwieser)\
**Post date:** [September 25, 2013, 5:40pm UTC](https://discuss.gradle.org/t/add-multiple-maven-dependencies-dynamically/6874/4 "2013-09-25T17:40:00Z")

</div>

This should work fine as long as ‘myRepos’ is declared within ‘buildscript { … }’. The ‘buildscript’ block is (very) special in that it cannot refer to anything that’s declared outside. A good mental model to have is to consider it a separate build script that gets evaluated before the remainder of the build script.

---

<div class="post-metadata">

**Author:** ![Kevin\_O\_Neal](https://sea1.discourse-cdn.com/gradle/user_avatar/discuss.gradle.org/kevin_o_neal/32/917_2.png) [@Kevin\_O\_Neal](https://discuss.gradle.org/u/Kevin_O_Neal)\
**Post date:** [September 25, 2013, 5:53pm UTC](https://discuss.gradle.org/t/add-multiple-maven-dependencies-dynamically/6874/5 "2013-09-25T17:53:00Z")

</div>

When I do the following I receive and warning and it seems that the repositories are not being added to the project.

```gradle
buildscript {
    repositories {
            ['file:C:\project\subProjectOne\libs',
             'file:C:\project\subProjectTwo\libs',
             'file:C:\project\subProjectThree\libs',
            ].each {
               maven { url it }
            }
    }
}

```

```gradle
Converting class org.gradle.api.internal.artifacts.repositories.DefaultMavenArtifactRepository_Decorated to File using toString() method has been deprecated and is scheduled to be removed in Gradle 2.0. Please use java.io.File, java.lang.String, java.net.URL, or java.net.URI instead.

```

---

<div class="post-metadata">

**Author:** ![Peter\_Niederwieser](https://avatars.discourse-cdn.com/v4/letter/p/9f8e36/32.png) [@Peter\_Niederwieser](https://discuss.gradle.org/u/Peter_Niederwieser)\
**Post date:** [September 25, 2013, 10:52pm UTC](https://discuss.gradle.org/t/add-multiple-maven-dependencies-dynamically/6874/6 "2013-09-25T22:52:00Z")

</div>

The use of ‘it’ is wrong. You need to specify an explicit closure parameter after ‘each’.

---

<div class="post-metadata">

**Author:** ![Kevin\_O\_Neal](https://sea1.discourse-cdn.com/gradle/user_avatar/discuss.gradle.org/kevin_o_neal/32/917_2.png) [@Kevin\_O\_Neal](https://discuss.gradle.org/u/Kevin_O_Neal)\
**Post date:** [September 26, 2013, 3:56pm UTC](https://discuss.gradle.org/t/add-multiple-maven-dependencies-dynamically/6874/7 "2013-09-26T15:56:00Z")

</div>

Thanks for the help Peter!

The last problem I had was a simple coding error. There was a space in between the file and the url. The array I was passing to the each looked like:

```gradle
['file: C:\project\subProjectOne\libs',
             'file: C:\project\subProjectTwo\libs',
             'file: C:\project\subProjectThree\libs',
            ]

```
