# Multi level project configuration

**URL:** <https://discuss.gradle.org/t/multi-level-project-configuration/6823>\
**Category:** Old Forum Archive\
**Created:** [February 22, 2013, 7:37am UTC](https://discuss.gradle.org/t/multi-level-project-configuration/6823 "2013-02-22T07:37:00Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Trilok\_agarwal](https://avatars.discourse-cdn.com/v4/letter/t/c2a13f/32.png) [@Trilok\_agarwal](https://discuss.gradle.org/u/Trilok_agarwal)\
**Post date:** [February 22, 2013, 7:37am UTC](https://discuss.gradle.org/t/multi-level-project-configuration/6823/1 "2013-02-22T07:37:00Z")

</div>

settings.gradle

includeFlat “entsec\_ldap:java:src:oracle:security:crypto:cert”

entsec\_ldap/java/src/oracle/security/crypto/cert/build.gradle

sourceSets {

main {

java {

srcDir ‘project.projectDir’

}

}

}

Have sources under entsec\_ldap/java/src/oracle/security/crypto/cert

but doing build from rootProject dir gives

Starting to execute task ‘:entsec\_ldap:java:src:oracle:security:crypto:cert:compileJava’ 23:23:23.768 [INFO] [org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter] Skipping task ‘:entsec\_ldap:java:src:oracle:security:crypto:cert:compileJava’ as it has no source files. 23:23:23.768 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ‘:entsec\_ldap:java:src:oracle:security:crypto:cert:compileJava’ 23:23:23.769 [LIFECYCLE] [org.gradle.TaskExecutionLogger] :entsec\_ldap:java:src:oracle:security:crypto:cert:compileJava UP-TO-DATE

How to specify sourceSet in multiproject

---

<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:** [February 22, 2013, 7:56am UTC](https://discuss.gradle.org/t/multi-level-project-configuration/6823/2 "2013-02-22T07:56:00Z")

</div>

‘project.projectDir’ isn’t a String. You need to omit the quotes. Or maybe your code got scrambled. Please use HTML ‘\<code\>’ tags for all code and output.

---

<div class="post-metadata">

**Author:** ![Trilok\_agarwal](https://avatars.discourse-cdn.com/v4/letter/t/c2a13f/32.png) [@Trilok\_agarwal](https://discuss.gradle.org/u/Trilok_agarwal)\
**Post date:** [February 22, 2013, 6:23pm UTC](https://discuss.gradle.org/t/multi-level-project-configuration/6823/3 "2013-02-22T18:23:00Z")

</div>

entsec & entsec\_ldap are directories at same level

entsec/settings.gradle

```gradle
includeFlat "entsec_ldap:java:src:oracle:security:crypto:cert"

```

entsec\_ldap/java/src/oracle/security/crypto/cert/build.gradle ``

sourceSets {

main {

java {

srcDir ‘.’

exclude ‘ **/.ade\_path/** ’

}

}

}

} ``

but gradle build from entsec directory is not able to find the build.gradle file in entsec\_ldap/java/src/oracle/security/crypto/cert directory

10:16:37.222 [DEBUG] [org.gradle.configuration.BuildScriptProcessor] Timing: Running the build script took 5.569 secs 10:16:37.621 [INFO] [org.gradle.configuration.BuildScriptProcessor] Evaluating project ‘:entsec\_ldap:java:src:oracle:security:crypto:cert’ using empty build file.

---

<div class="post-metadata">

**Author:** ![djangofan](https://sea1.discourse-cdn.com/gradle/user_avatar/discuss.gradle.org/djangofan/32/117_2.png) [@djangofan](https://discuss.gradle.org/u/djangofan)\
**Post date:** [February 22, 2013, 7:37pm UTC](https://discuss.gradle.org/t/multi-level-project-configuration/6823/4 "2013-02-22T19:37:00Z")

</div>

Interesting. I didn’t know you could embed sub-projects, using the ‘includeFlat’ notation, using colon characters. I knew it works with ‘include’ but I thought ‘includeFlat’ was different. I might need to try that and see if it works. This makes me wonder: what is really the difference between ‘include’ and ‘includeFlat’?

---

<div class="post-metadata">

**Author:** ![Trilok\_agarwal](https://avatars.discourse-cdn.com/v4/letter/t/c2a13f/32.png) [@Trilok\_agarwal](https://discuss.gradle.org/u/Trilok_agarwal)\
**Post date:** [February 22, 2013, 9:41pm UTC](https://discuss.gradle.org/t/multi-level-project-configuration/6823/5 "2013-02-22T21:41:00Z")

</div>

you may be right, in the sense, includeFlat cannot support “:” semantic, that is the reason gradle is not able to find the build.gradle.

---

<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:** [February 23, 2013, 2:05am UTC](https://discuss.gradle.org/t/multi-level-project-configuration/6823/6 "2013-02-23T02:05:00Z")

</div>

Can you describe the directory layout in more detail? Why is ‘build.gradle’ located in ‘entsec\_ldap/java/src/oracle/security/crypto/cert’, and not, say, in ‘entsec\_ldap’? Also, isn’t ‘entsec\_ldap/java/src’ the source root, with ‘oracle/security/crypto/cert’ being (part of) the package name of the code to be compiled?

---

<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:** [February 23, 2013, 2:06am UTC](https://discuss.gradle.org/t/multi-level-project-configuration/6823/7 "2013-02-23T02:06:00Z")

</div>

That’s not the problem, but I first have to understand your directory layout. Your ‘includeFlat’ statement is probably not what you want.
