build.gradle 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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 are dependencies simpler.
  28. */
  29. project.afterEvaluate {
  30. configurations.all { Configuration conf ->
  31. dependencies.all { Dependency dep ->
  32. Project depProject = dependencyToProject(dep)
  33. if (depProject != null
  34. && false == depProject.path.equals(':libs:core')
  35. && false == isEclipse
  36. && depProject.path.startsWith(':libs')) {
  37. throw new InvalidUserDataException("projects in :libs "
  38. + "may not depend on other projects libs except "
  39. + ":libs:core but "
  40. + "${project.path} depends on ${depProject.path}")
  41. }
  42. }
  43. }
  44. }
  45. }