2018-02-09 15:55:10 -05:00
|
|
|
import org.elasticsearch.gradle.Version
|
|
|
|
|
2016-12-14 18:02:07 -05:00
|
|
|
String dirName = rootProject.projectDir.name
|
|
|
|
rootProject.name = dirName
|
2015-10-29 14:40:19 -04:00
|
|
|
|
2015-11-05 01:28:57 -05:00
|
|
|
List projects = [
|
2016-05-07 01:22:38 -04:00
|
|
|
'build-tools',
|
2015-10-29 14:40:19 -04:00
|
|
|
'rest-api-spec',
|
2016-04-29 10:42:03 -04:00
|
|
|
'docs',
|
2016-06-22 13:40:01 -04:00
|
|
|
'client:rest',
|
2016-12-29 12:16:04 -05:00
|
|
|
'client:rest-high-level',
|
2016-06-22 13:40:01 -04:00
|
|
|
'client:sniffer',
|
2016-07-18 09:42:24 -04:00
|
|
|
'client:transport',
|
2016-06-22 13:40:01 -04:00
|
|
|
'client:test',
|
2016-08-26 03:05:47 -04:00
|
|
|
'client:client-benchmark-noop-api-plugin',
|
2016-07-26 05:01:22 -04:00
|
|
|
'client:benchmark',
|
2016-06-15 10:48:02 -04:00
|
|
|
'benchmarks',
|
2018-02-14 01:49:53 -05:00
|
|
|
'distribution:archives:integ-test-zip',
|
2018-02-23 11:03:17 -05:00
|
|
|
'distribution:archives:oss-zip',
|
2018-02-14 01:49:53 -05:00
|
|
|
'distribution:archives:zip',
|
2018-02-23 11:03:17 -05:00
|
|
|
'distribution:archives:oss-tar',
|
2018-02-14 01:49:53 -05:00
|
|
|
'distribution:archives:tar',
|
2018-12-06 17:06:13 -05:00
|
|
|
'distribution:docker',
|
2018-02-23 11:03:17 -05:00
|
|
|
'distribution:packages:oss-deb',
|
2018-02-14 01:49:53 -05:00
|
|
|
'distribution:packages:deb',
|
2018-02-23 11:03:17 -05:00
|
|
|
'distribution:packages:oss-rpm',
|
2018-02-14 01:49:53 -05:00
|
|
|
'distribution:packages:rpm',
|
2018-11-01 11:43:57 -04:00
|
|
|
'distribution:bwc:bugfix',
|
|
|
|
'distribution:bwc:maintenance',
|
|
|
|
'distribution:bwc:minor',
|
|
|
|
'distribution:bwc:staged',
|
2018-06-10 20:03:21 -04:00
|
|
|
'distribution:tools:java-version-checker',
|
2017-12-06 18:03:13 -05:00
|
|
|
'distribution:tools:launchers',
|
2017-04-21 12:25:58 -04:00
|
|
|
'distribution:tools:plugin-cli',
|
2018-01-11 13:30:43 -05:00
|
|
|
'server',
|
|
|
|
'server:cli',
|
2015-12-17 19:57:39 -05:00
|
|
|
'test:framework',
|
2015-12-20 16:00:37 -05:00
|
|
|
'test:fixtures:hdfs-fixture',
|
2017-05-10 17:42:20 -04:00
|
|
|
'test:fixtures:krb5kdc-fixture',
|
2017-05-11 10:06:20 -04:00
|
|
|
'test:fixtures:old-elasticsearch',
|
2018-01-17 22:54:43 -05:00
|
|
|
'test:logger-usage'
|
2015-10-29 14:40:19 -04:00
|
|
|
]
|
|
|
|
|
2018-01-17 22:54:43 -05:00
|
|
|
/**
|
|
|
|
* 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.
|
|
|
|
*/
|
2018-02-09 15:55:10 -05:00
|
|
|
void addSubProjects(String path, File dir) {
|
2018-01-17 22:54:43 -05:00
|
|
|
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
|
2018-02-09 15:55:10 -05:00
|
|
|
if (path.isEmpty() || path.startsWith(':example-plugins')) {
|
2018-01-17 22:54:43 -05:00
|
|
|
project(projectName).projectDir = dir
|
|
|
|
}
|
|
|
|
for (File subdir : dir.listFiles()) {
|
2018-02-09 15:55:10 -05:00
|
|
|
addSubProjects(projectName, subdir)
|
2018-01-17 22:54:43 -05:00
|
|
|
}
|
|
|
|
}
|
2018-02-09 15:55:10 -05:00
|
|
|
|
2018-01-03 14:12:43 -05:00
|
|
|
|
2018-01-17 22:54:43 -05:00
|
|
|
// 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;
|
2018-02-09 15:55:10 -05:00
|
|
|
addSubProjects(':example-plugins', example)
|
2018-01-17 22:54:43 -05:00
|
|
|
}
|
|
|
|
project(':example-plugins').projectDir = new File(rootProject.projectDir, 'plugins/examples')
|
|
|
|
|
2018-02-09 15:55:10 -05:00
|
|
|
addSubProjects('', new File(rootProject.projectDir, 'libs'))
|
|
|
|
addSubProjects('', new File(rootProject.projectDir, 'modules'))
|
|
|
|
addSubProjects('', new File(rootProject.projectDir, 'plugins'))
|
|
|
|
addSubProjects('', new File(rootProject.projectDir, 'qa'))
|
2018-01-30 02:11:48 -05:00
|
|
|
addSubProjects('', new File(rootProject.projectDir, 'x-pack'))
|
2017-11-21 03:26:45 -05:00
|
|
|
|
2018-08-24 16:11:07 -04:00
|
|
|
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");
|
2015-11-05 01:28:57 -05:00
|
|
|
if (isEclipse) {
|
|
|
|
// eclipse cannot handle an intermediate dependency between main and test, so we must create separate projects
|
2018-01-11 13:30:43 -05:00
|
|
|
// for server-src and server-tests
|
|
|
|
projects << 'server-tests'
|
2018-06-07 16:50:21 -04:00
|
|
|
projects << 'libs:core-tests'
|
2018-08-20 05:05:25 -04:00
|
|
|
projects << 'libs:dissect-tests'
|
2018-06-07 17:00:00 -04:00
|
|
|
projects << 'libs:nio-tests'
|
2018-04-03 03:55:04 -04:00
|
|
|
projects << 'libs:x-content-tests'
|
2018-02-01 10:33:26 -05:00
|
|
|
projects << 'libs:secure-sm-tests'
|
2018-02-20 07:49:57 -05:00
|
|
|
projects << 'libs:grok-tests'
|
2019-01-15 10:52:46 -05:00
|
|
|
projects << 'libs:geo-tests'
|
2019-01-16 05:52:17 -05:00
|
|
|
projects << 'libs:ssl-config'
|
2015-11-05 01:28:57 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
include projects.toArray(new String[0])
|
|
|
|
|
2016-05-07 01:22:38 -04:00
|
|
|
project(':build-tools').projectDir = new File(rootProject.projectDir, 'buildSrc')
|
|
|
|
|
2015-11-05 01:28:57 -05:00
|
|
|
if (isEclipse) {
|
2018-01-11 13:30:43 -05:00
|
|
|
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'
|
2018-06-07 16:50:21 -04:00
|
|
|
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'
|
2018-08-20 05:05:25 -04:00
|
|
|
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'
|
2018-06-07 17:00:00 -04:00
|
|
|
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'
|
2018-04-03 03:55:04 -04:00
|
|
|
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'
|
2018-02-01 10:33:26 -05:00
|
|
|
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'
|
2018-02-20 07:49:57 -05:00
|
|
|
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'
|
2019-01-15 10:52:46 -05:00
|
|
|
project(":libs:geo").projectDir = new File(rootProject.projectDir, 'libs/geo/src/main')
|
|
|
|
project(":libs:geo").buildFileName = 'eclipse-build.gradle'
|
|
|
|
project(":libs:geo-tests").projectDir = new File(rootProject.projectDir, 'libs/geo/src/test')
|
2019-01-16 05:52:17 -05:00
|
|
|
project(":libs:geo-tests").buildFileName = 'eclipse-build.gradle'
|
|
|
|
project(":libs:ssl-config").projectDir = new File(rootProject.projectDir, 'libs/ssl-config/src/main')
|
|
|
|
project(":libs:ssl-config").buildFileName = 'eclipse-build.gradle'
|
|
|
|
project(":libs:ssl-config-tests").projectDir = new File(rootProject.projectDir, 'libs/ssl-config/src/test')
|
|
|
|
project(":libs:ssl-config-tests").buildFileName = 'eclipse-build.gradle'
|
|
|
|
}
|
2015-10-29 14:40:19 -04:00
|
|
|
|
2015-11-23 17:44:37 -05:00
|
|
|
// look for extra plugins for elasticsearch
|
2016-12-14 18:02:07 -05:00
|
|
|
File extraProjects = new File(rootProject.projectDir.parentFile, "${dirName}-extra")
|
|
|
|
if (extraProjects.exists()) {
|
|
|
|
for (File extraProjectDir : extraProjects.listFiles()) {
|
2018-02-09 15:55:10 -05:00
|
|
|
addSubProjects('', extraProjectDir)
|
2015-11-23 17:44:37 -05:00
|
|
|
}
|
2018-02-14 01:49:53 -05:00
|
|
|
}
|
2018-06-29 15:17:19 -04:00
|
|
|
|
2018-07-19 02:46:58 -04:00
|
|
|
project(":libs:cli").name = 'elasticsearch-cli'
|
2019-01-15 10:52:46 -05:00
|
|
|
project(":libs:geo").name = 'elasticsearch-geo'
|
2019-01-16 05:52:17 -05:00
|
|
|
project(":libs:ssl-config").name = 'elasticsearch-ssl-config'
|