You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
3.0 KiB
81 lines
3.0 KiB
apply plugin: 'idea' |
|
|
|
configure(javaProjects) { |
|
apply plugin: 'idea' |
|
apply plugin: 'eclipse' |
|
|
|
ideaModule { |
|
downloadJavadoc=false |
|
excludeDirs.add(buildDir) |
|
gradleCacheVariable = 'GRADLE_CACHE' |
|
outputDir = "$rootProject.projectDir/intellij/out" as File |
|
testOutputDir = "$rootProject.projectDir/intellij/testOut" as File |
|
whenConfigured { module -> |
|
def allClasses = module.dependencies.findAll() { dep -> |
|
if (dep instanceof org.gradle.plugins.idea.model.ModuleLibrary |
|
&& dep.classes.find { path -> |
|
path.url.matches('.*jcl-over-slf4j.*') || |
|
path.url.matches('.*servlet-api.*') || |
|
path.url.matches('.*jsp-api.*') |
|
}) { |
|
dep.scope = 'COMPILE' |
|
dep.exported = false |
|
} |
|
} |
|
} |
|
} |
|
// GRADLE-1116 |
|
eclipseClasspath.whenConfigured { classpath -> |
|
classpath.entries.removeAll { entry -> entry.path.endsWith('/build/classes/test') } |
|
} |
|
eclipseClasspath.doFirst { |
|
eclipseClasspath.whenConfigured { classpath -> |
|
def includeDeps = project.configurations.getByName('runtime')?.collect { f-> f.absolutePath } as Set |
|
classpath.entries.each { cp -> |
|
if(cp instanceof org.gradle.plugins.eclipse.model.Library) { |
|
def include = includeDeps.contains(cp.path) |
|
def attr = 'org.eclipse.jst.component.dependency' |
|
if(include && project.hasProperty('war')) { |
|
// GRADLE-1426 (part a) |
|
cp.entryAttributes.put(attr,'/WEB-INF/lib') |
|
} else if(!include) { |
|
// GRADLE-1422 |
|
cp.entryAttributes.remove(attr) |
|
} |
|
} |
|
} |
|
} |
|
} |
|
// GRADLE-1426 (part b) |
|
project.plugins.withType(org.gradle.api.plugins.WarPlugin.class).all { |
|
eclipseWtpComponent.whenConfigured { wtpComp -> |
|
wtpComp.wbModuleEntries.findAll { it instanceof org.gradle.plugins.eclipse.model.WbDependentModule }.each { e -> |
|
if(!e.handle.startsWith('module:/resource/')) { |
|
wtpComp.wbModuleEntries.remove(e) |
|
} |
|
} |
|
} |
|
} |
|
tasks.withType(org.gradle.plugins.eclipse.EclipseWtpComponent) { |
|
whenConfigured { wtpComponent -> |
|
wtpComponent.contextPath = project.tasks.findByName('jettyRun')?.contextPath?.replaceFirst('/','') |
|
} |
|
} |
|
} |
|
|
|
ideaModule { |
|
excludeDirs += file('.gradle') |
|
excludeDirs += file('buildSrc/build') |
|
excludeDirs += file('buildSrc/.gradle') |
|
} |
|
|
|
ideaProject { |
|
javaVersion = '1.6' |
|
subprojects = [rootProject] + javaProjects |
|
withXml { provider -> |
|
// Use git |
|
def node = provider.asNode() |
|
def vcsConfig = node.component.find { it.'@name' == 'VcsDirectoryMappings' } |
|
vcsConfig.mapping[0].'@vcs' = 'Git' |
|
} |
|
}
|
|
|