anchor.diff:  [[ssub:dependencies_and_execution_order]]
   ==== Dependencies and execution order
   
  -===== Example: Dependencies and execution order
  -
  -.Project layout
  +.Dependencies and execution order
  +====
  +[.multi-language-sample]
  +=====
  +.Project layout
  +[source, groovy]
   ----
   .
   ├── build.gradle
  
positive.code: │   └── build.gradle
  └── settings.gradle
  ----
  
  ====
  include::sample[dir="userguide/multiproject/dependencies/messagesHack/messages/groovy",files="build.gradle[];settings.gradle[];consumer/build.gradle[];aProducer/build.gradle[]"]
  include::sample[dir="userguide/multiproject/dependencies/messagesHack/messages/kotlin",files="build.gradle.kts[];settings.gradle.kts[];consumer/build.gradle.kts[];aProducer/build.gradle.kts[]"]
  ====
  
  .Output of `gradle -q action`
  ----
  
negative.code: What if one project needs the jar produced by another project in its compile path, and not just the jar but also the transitive dependencies of this jar? Obviously this is a very common use case for Java multi-project builds. As mentioned in <<dependency_types.adoc#sub:project_dependencies,Project dependencies>>, Gradle offers project lib dependencies for this.
  
  .Project lib dependencies
  ====
  [.multi-language-sample]
  =====
  .Project layout
  [source, groovy]
  ----
  .
  ├── api
  