mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-03-09 14:34:43 +00:00
Build: use separate build directories for eclipse and intellij
This fixes the problem where doing a gradle clean from the command line completely breaks the IDE.
This commit is contained in:
parent
7a6adfd93a
commit
2fef5dee96
6
.gitignore
vendored
6
.gitignore
vendored
@ -4,12 +4,13 @@
|
|||||||
*.iml
|
*.iml
|
||||||
*.ipr
|
*.ipr
|
||||||
*.iws
|
*.iws
|
||||||
|
build-idea/
|
||||||
|
|
||||||
# eclipse files
|
# eclipse files
|
||||||
.project
|
.project
|
||||||
.classpath
|
.classpath
|
||||||
eclipse-build
|
|
||||||
.settings
|
.settings
|
||||||
|
build-eclipse/
|
||||||
|
|
||||||
# netbeans files
|
# netbeans files
|
||||||
nb-configuration.xml
|
nb-configuration.xml
|
||||||
@ -18,7 +19,6 @@ nbactions.xml
|
|||||||
# gradle stuff
|
# gradle stuff
|
||||||
.gradle/
|
.gradle/
|
||||||
build/
|
build/
|
||||||
generated-resources/
|
|
||||||
|
|
||||||
# maven stuff (to be removed when trunk becomes 4.x)
|
# maven stuff (to be removed when trunk becomes 4.x)
|
||||||
*-execution-hints.log
|
*-execution-hints.log
|
||||||
@ -38,5 +38,5 @@ html_docs
|
|||||||
# random old stuff that we should look at the necessity of...
|
# random old stuff that we should look at the necessity of...
|
||||||
/tmp/
|
/tmp/
|
||||||
backwards/
|
backwards/
|
||||||
|
eclipse-build
|
||||||
|
|
||||||
|
19
build.gradle
19
build.gradle
@ -75,8 +75,9 @@ subprojects {
|
|||||||
allprojects {
|
allprojects {
|
||||||
// injecting groovy property variables into all projects
|
// injecting groovy property variables into all projects
|
||||||
project.ext {
|
project.ext {
|
||||||
// for eclipse hacks...
|
// for ide hacks...
|
||||||
isEclipse = System.getProperty("eclipse.launcher") != null || gradle.startParameter.taskNames.contains('eclipse') || gradle.startParameter.taskNames.contains('cleanEclipse')
|
isEclipse = System.getProperty("eclipse.launcher") != null || gradle.startParameter.taskNames.contains('eclipse') || gradle.startParameter.taskNames.contains('cleanEclipse')
|
||||||
|
isIdea = System.getProperty("idea.active") != null || gradle.startParameter.taskNames.contains('idea') || gradle.startParameter.taskNames.contains('cleanIdea')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -170,12 +171,15 @@ gradle.projectsEvaluated {
|
|||||||
allprojects {
|
allprojects {
|
||||||
apply plugin: 'idea'
|
apply plugin: 'idea'
|
||||||
|
|
||||||
|
if (isIdea) {
|
||||||
|
project.buildDir = file('build-idea')
|
||||||
|
}
|
||||||
idea {
|
idea {
|
||||||
module {
|
module {
|
||||||
// same as for the IntelliJ Gradle tooling integration
|
// same as for the IntelliJ Gradle tooling integration
|
||||||
inheritOutputDirs = false
|
inheritOutputDirs = false
|
||||||
outputDir = file('build/classes/main')
|
outputDir = file('build-idea/classes/main')
|
||||||
testOutputDir = file('build/classes/test')
|
testOutputDir = file('build-idea/classes/test')
|
||||||
|
|
||||||
iml {
|
iml {
|
||||||
// fix so that Gradle idea plugin properly generates support for resource folders
|
// fix so that Gradle idea plugin properly generates support for resource folders
|
||||||
@ -222,14 +226,19 @@ allprojects {
|
|||||||
apply plugin: 'eclipse'
|
apply plugin: 'eclipse'
|
||||||
|
|
||||||
plugins.withType(JavaBasePlugin) {
|
plugins.withType(JavaBasePlugin) {
|
||||||
eclipse.classpath.defaultOutputDir = new File(project.buildDir, 'eclipse')
|
File eclipseBuild = project.file('build-eclipse')
|
||||||
|
eclipse.classpath.defaultOutputDir = eclipseBuild
|
||||||
|
if (isEclipse) {
|
||||||
|
// set this so generated dirs will be relative to eclipse build
|
||||||
|
project.buildDir = eclipseBuild
|
||||||
|
}
|
||||||
eclipse.classpath.file.whenMerged { classpath ->
|
eclipse.classpath.file.whenMerged { classpath ->
|
||||||
// give each source folder a unique corresponding output folder
|
// give each source folder a unique corresponding output folder
|
||||||
int i = 0;
|
int i = 0;
|
||||||
classpath.entries.findAll { it instanceof SourceFolder }.each { folder ->
|
classpath.entries.findAll { it instanceof SourceFolder }.each { folder ->
|
||||||
i++;
|
i++;
|
||||||
// this is *NOT* a path or a file.
|
// this is *NOT* a path or a file.
|
||||||
folder.output = "build/eclipse/" + i
|
folder.output = "build-eclipse/" + i
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -78,7 +78,7 @@ extraArchive {
|
|||||||
|
|
||||||
eclipse {
|
eclipse {
|
||||||
classpath {
|
classpath {
|
||||||
defaultOutputDir = new File(file('build'), 'eclipse')
|
defaultOutputDir = file('build-eclipse')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ import org.gradle.api.tasks.Copy
|
|||||||
class PluginPropertiesTask extends Copy {
|
class PluginPropertiesTask extends Copy {
|
||||||
|
|
||||||
PluginPropertiesExtension extension
|
PluginPropertiesExtension extension
|
||||||
File generatedResourcesDir = new File(project.projectDir, 'generated-resources')
|
File generatedResourcesDir = new File(project.buildDir, 'generated-resources')
|
||||||
|
|
||||||
PluginPropertiesTask() {
|
PluginPropertiesTask() {
|
||||||
File templateFile = new File(project.buildDir, 'templates/plugin-descriptor.properties')
|
File templateFile = new File(project.buildDir, 'templates/plugin-descriptor.properties')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user