123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- import org.elasticsearch.gradle.Version
- String dirName = rootProject.projectDir.name
- rootProject.name = dirName
- List projects = [
- 'build-tools',
- 'rest-api-spec',
- 'docs',
- 'client:rest',
- 'client:rest-high-level',
- 'client:sniffer',
- 'client:transport',
- 'client:test',
- 'client:client-benchmark-noop-api-plugin',
- 'client:benchmark',
- 'benchmarks',
- 'distribution:archives:integ-test-zip',
- 'distribution:archives:oss-zip',
- 'distribution:archives:zip',
- 'distribution:archives:oss-tar',
- 'distribution:archives:tar',
- 'distribution:packages:oss-deb',
- 'distribution:packages:deb',
- 'distribution:packages:oss-rpm',
- 'distribution:packages:rpm',
- 'distribution:bwc:bugfix',
- 'distribution:bwc:maintenance',
- 'distribution:bwc:minor',
- 'distribution:bwc:staged',
- 'distribution:tools:java-version-checker',
- 'distribution:tools:launchers',
- 'distribution:tools:plugin-cli',
- 'server',
- 'server:cli',
- 'test:framework',
- 'test:fixtures:hdfs-fixture',
- 'test:fixtures:krb5kdc-fixture',
- 'test:fixtures:old-elasticsearch',
- 'test:logger-usage'
- ]
- /**
- * Iterates over sub directories, looking for build.gradle, and adds a project if found
- * for that dir with the given path prefix. Note that this requires each level
- * of the dir hierarchy to have a build.gradle. Otherwise we would have to iterate
- * all files/directories in the source tree to find all projects.
- */
- void addSubProjects(String path, File dir) {
- if (dir.isDirectory() == false) return;
- if (dir.name == 'buildSrc') return;
- if (new File(dir, 'build.gradle').exists() == false) return;
- if (findProject(dir) != null) return;
- final String projectName = "${path}:${dir.name}"
- include projectName
- if (path.isEmpty() || path.startsWith(':example-plugins')) {
- project(projectName).projectDir = dir
- }
- for (File subdir : dir.listFiles()) {
- addSubProjects(projectName, subdir)
- }
- }
- // include example plugins first, so adding plugin dirs below won't muck with :example-plugins
- File examplePluginsDir = new File(rootProject.projectDir, 'plugins/examples')
- for (File example : examplePluginsDir.listFiles()) {
- if (example.isDirectory() == false) continue;
- if (example.name.startsWith('build') || example.name.startsWith('.')) continue;
- addSubProjects(':example-plugins', example)
- }
- project(':example-plugins').projectDir = new File(rootProject.projectDir, 'plugins/examples')
- addSubProjects('', new File(rootProject.projectDir, 'libs'))
- addSubProjects('', new File(rootProject.projectDir, 'modules'))
- addSubProjects('', new File(rootProject.projectDir, 'plugins'))
- addSubProjects('', new File(rootProject.projectDir, 'qa'))
- addSubProjects('', new File(rootProject.projectDir, 'x-pack'))
- List startTasks = gradle.startParameter.taskNames
- boolean isEclipse =
- System.getProperty("eclipse.launcher") != null || // Detects gradle launched from the Eclipse IDE
- System.getProperty("eclipse.application") != null || // Detects gradle launched from the Eclipse compiler server
- startTasks.contains("eclipse") || // Detects gradle launched from the command line to do Eclipse stuff
- startTasks.contains("cleanEclipse");
- if (isEclipse) {
- // eclipse cannot handle an intermediate dependency between main and test, so we must create separate projects
- // for server-src and server-tests
- projects << 'server-tests'
- projects << 'libs:core-tests'
- projects << 'libs:dissect-tests'
- projects << 'libs:nio-tests'
- projects << 'libs:x-content-tests'
- projects << 'libs:secure-sm-tests'
- projects << 'libs:grok-tests'
- }
- include projects.toArray(new String[0])
- project(':build-tools').projectDir = new File(rootProject.projectDir, 'buildSrc')
- if (isEclipse) {
- project(":server").projectDir = new File(rootProject.projectDir, 'server/src/main')
- project(":server").buildFileName = 'eclipse-build.gradle'
- project(":server-tests").projectDir = new File(rootProject.projectDir, 'server/src/test')
- project(":server-tests").buildFileName = 'eclipse-build.gradle'
- project(":libs:core").projectDir = new File(rootProject.projectDir, 'libs/core/src/main')
- project(":libs:core").buildFileName = 'eclipse-build.gradle'
- project(":libs:core-tests").projectDir = new File(rootProject.projectDir, 'libs/core/src/test')
- project(":libs:core-tests").buildFileName = 'eclipse-build.gradle'
- project(":libs:dissect").projectDir = new File(rootProject.projectDir, 'libs/dissect/src/main')
- project(":libs:dissect").buildFileName = 'eclipse-build.gradle'
- project(":libs:dissect-tests").projectDir = new File(rootProject.projectDir, 'libs/dissect/src/test')
- project(":libs:dissect-tests").buildFileName = 'eclipse-build.gradle'
- project(":libs:nio").projectDir = new File(rootProject.projectDir, 'libs/nio/src/main')
- project(":libs:nio").buildFileName = 'eclipse-build.gradle'
- project(":libs:nio-tests").projectDir = new File(rootProject.projectDir, 'libs/nio/src/test')
- project(":libs:nio-tests").buildFileName = 'eclipse-build.gradle'
- project(":libs:x-content").projectDir = new File(rootProject.projectDir, 'libs/x-content/src/main')
- project(":libs:x-content").buildFileName = 'eclipse-build.gradle'
- project(":libs:x-content-tests").projectDir = new File(rootProject.projectDir, 'libs/x-content/src/test')
- project(":libs:x-content-tests").buildFileName = 'eclipse-build.gradle'
- project(":libs:secure-sm").projectDir = new File(rootProject.projectDir, 'libs/secure-sm/src/main')
- project(":libs:secure-sm").buildFileName = 'eclipse-build.gradle'
- project(":libs:secure-sm-tests").projectDir = new File(rootProject.projectDir, 'libs/secure-sm/src/test')
- project(":libs:secure-sm-tests").buildFileName = 'eclipse-build.gradle'
- project(":libs:grok").projectDir = new File(rootProject.projectDir, 'libs/grok/src/main')
- project(":libs:grok").buildFileName = 'eclipse-build.gradle'
- project(":libs:grok-tests").projectDir = new File(rootProject.projectDir, 'libs/grok/src/test')
- project(":libs:grok-tests").buildFileName = 'eclipse-build.gradle'
- }
- // look for extra plugins for elasticsearch
- File extraProjects = new File(rootProject.projectDir.parentFile, "${dirName}-extra")
- if (extraProjects.exists()) {
- for (File extraProjectDir : extraProjects.listFiles()) {
- addSubProjects('', extraProjectDir)
- }
- }
- // enable in preparation for Gradle 5.0
- enableFeaturePreview('STABLE_PUBLISHING')
- project(":libs:cli").name = 'elasticsearch-cli'
|