build.gradle 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /*
  2. * Licensed to Elasticsearch under one or more contributor
  3. * license agreements. See the NOTICE file distributed with
  4. * this work for additional information regarding copyright
  5. * ownership. Elasticsearch licenses this file to you under
  6. * the Apache License, Version 2.0 (the "License"); you may
  7. * not use this file except in compliance with the License.
  8. * You may obtain a copy of the License at
  9. *
  10. * http://www.apache.org/licenses/LICENSE-2.0
  11. *
  12. * Unless required by applicable law or agreed to in writing,
  13. * software distributed under the License is distributed on an
  14. * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  15. * KIND, either express or implied. See the License for the
  16. * specific language governing permissions and limitations
  17. * under the License.
  18. */
  19. subprojects {
  20. /*
  21. * All subprojects are java projects using Elasticsearch's standard build
  22. * tools.
  23. */
  24. apply plugin: 'elasticsearch.build'
  25. /*
  26. * Subprojects may depend on the "core" lib but may not depend on any
  27. * other libs. This keeps our dependencies simpler.
  28. */
  29. project.afterEvaluate {
  30. configurations.all { Configuration conf ->
  31. dependencies.matching { it instanceof ProjectDependency }.all { ProjectDependency dep ->
  32. Project depProject = dep.dependencyProject
  33. if (depProject != null
  34. && false == depProject.path.equals(':libs:elasticsearch-core')
  35. && depProject.path.startsWith(':libs')) {
  36. throw new InvalidUserDataException("projects in :libs "
  37. + "may not depend on other projects libs except "
  38. + ":libs:elasticsearch-core but "
  39. + "${project.path} depends on ${depProject.path}")
  40. }
  41. }
  42. }
  43. }
  44. }