mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-06 13:08:29 +00:00
0a14bb174f
* Remove eclipse conditionals We used to have some meta projects with a `-test` prefix because historically eclipse could not distinguish between test and main source-sets and could only use a single classpath. This is no longer the case for the past few Eclipse versions. This PR adds the necessary configuration to correctly categorize source folders and libraries. With this change eclipse can import projects, and the visibility rules are correct e.x. auto compete doesn't offer classes from test code or `testCompile` dependencies when editing classes in `main`. Unfortunately the cyclic dependency detection in Eclipse doesn't seem to take the difference between test and non test source sets into account, but since we are checking this in Gradle anyhow, it's safe to set to `warning` in the settings. Unfortunately there is no setting to ignore it. This might cause problems when building since Eclipse will probably not know the right order to build things in so more wirk might be necesarry.
113 lines
3.9 KiB
Groovy
113 lines
3.9 KiB
Groovy
String dirName = rootProject.projectDir.name
|
|
rootProject.name = dirName
|
|
|
|
List projects = [
|
|
'build-tools',
|
|
'build-tools:reaper',
|
|
'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-windows-zip',
|
|
'distribution:archives:windows-zip',
|
|
'distribution:archives:oss-no-jdk-windows-zip',
|
|
'distribution:archives:no-jdk-windows-zip',
|
|
'distribution:archives:oss-darwin-tar',
|
|
'distribution:archives:darwin-tar',
|
|
'distribution:archives:oss-no-jdk-darwin-tar',
|
|
'distribution:archives:no-jdk-darwin-tar',
|
|
'distribution:archives:oss-linux-tar',
|
|
'distribution:archives:linux-tar',
|
|
'distribution:archives:oss-no-jdk-linux-tar',
|
|
'distribution:archives:no-jdk-linux-tar',
|
|
'distribution:docker',
|
|
'distribution:docker:oss-docker-build-context',
|
|
'distribution:docker:docker-build-context',
|
|
'distribution:packages:oss-deb',
|
|
'distribution:packages:deb',
|
|
'distribution:packages:oss-no-jdk-deb',
|
|
'distribution:packages:no-jdk-deb',
|
|
'distribution:packages:oss-rpm',
|
|
'distribution:packages:rpm',
|
|
'distribution:packages:oss-no-jdk-rpm',
|
|
'distribution:packages:no-jdk-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
|
|
|
|
include projects.toArray(new String[0])
|
|
|
|
project(':build-tools').projectDir = new File(rootProject.projectDir, 'buildSrc')
|
|
project(':build-tools:reaper').projectDir = new File(rootProject.projectDir, 'buildSrc/reaper')
|
|
|
|
project(":libs").children.each { libsProject ->
|
|
libsProject.name = "elasticsearch-${libsProject.name}"
|
|
}
|
|
|
|
// 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)
|
|
}
|
|
}
|