160 lines
3.5 KiB
Groovy
160 lines
3.5 KiB
Groovy
////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// plugin configuration must precede everything else
|
|
//
|
|
|
|
plugins {
|
|
id 'com.diffplug.gradle.p2.asmaven' version '3.10.0'
|
|
id 'com.github.hauner.jarTest' version '1.0.1' apply false
|
|
id 'de.undercouch.download'
|
|
id 'nebula.lint' version '8.3.1'
|
|
id "nebula.source-jar" version '7.0.1' apply false
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// required Eclipse components
|
|
//
|
|
|
|
p2AsMaven {
|
|
group 'eclipse-deps', {
|
|
repoEclipse '4.7.2'
|
|
slicingOption 'latestVersionOnly', 'true'
|
|
iu 'org.eclipse.core.commands'
|
|
iu 'org.eclipse.core.contenttype'
|
|
iu 'org.eclipse.core.jobs'
|
|
iu 'org.eclipse.core.resources'
|
|
iu 'org.eclipse.core.runtime'
|
|
iu 'org.eclipse.equinox.app'
|
|
iu 'org.eclipse.equinox.common'
|
|
iu 'org.eclipse.equinox.preferences'
|
|
iu 'org.eclipse.jdt.core'
|
|
iu 'org.eclipse.jface'
|
|
iu 'org.eclipse.osgi'
|
|
iu 'org.eclipse.pde.core'
|
|
iu 'org.eclipse.swt'
|
|
iu 'org.eclipse.ui.ide'
|
|
iu 'org.eclipse.ui.workbench'
|
|
}
|
|
group 'wst-deps', {
|
|
repo 'http://download.eclipse.org/releases/oxygen'
|
|
slicingOption 'latestVersionOnly', 'true'
|
|
iu 'org.eclipse.wst.jsdt.core'
|
|
iu 'org.eclipse.wst.jsdt.ui'
|
|
}
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// common Java setup shared by multiple projects
|
|
//
|
|
|
|
group name
|
|
version '1.4.4-SNAPSHOT'
|
|
|
|
subprojects { subproject ->
|
|
// skip generic Java setup for the few projects that have no Java code whatsoever
|
|
switch (subproject.name) {
|
|
case 'com.ibm.wala-repository':
|
|
case ~/.*_feature/:
|
|
return
|
|
}
|
|
|
|
apply plugin: 'java'
|
|
apply plugin: 'maven-publish'
|
|
apply plugin: 'nebula.source-jar'
|
|
|
|
sourceCompatibility = 1.8
|
|
|
|
version rootProject.version
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
maven {
|
|
url "$rootProject.buildDir/p2asmaven/maven"
|
|
}
|
|
}
|
|
|
|
jar.manifest.from('META-INF/MANIFEST.MF')
|
|
|
|
task afterEclipseBuildshipImport(dependsOn: processTestResources)
|
|
|
|
test {
|
|
include '**/*Test.class'
|
|
include '**/*TestCase.class'
|
|
include '**/*Tests.class'
|
|
include '**/Test*.class'
|
|
exclude '**/*AndroidLibs*.class'
|
|
}
|
|
}
|
|
|
|
task afterEclipseBuildshipImport(type: Exec) {
|
|
commandLine './revert-launchers.sh'
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// find platform-specific SWT implementations
|
|
//
|
|
|
|
def osgi_platform
|
|
|
|
switch (System.getProperty('os.name')) {
|
|
case ~/Mac OS X/:
|
|
osgi_platform = 'cocoa.macosx.x86_64'
|
|
break
|
|
case ~/Windows.*/:
|
|
osgi_platform = 'win32.win32.x86_64'
|
|
break
|
|
case ~/Linux/:
|
|
osgi_platform = 'gtk.linux.x86_64'
|
|
break
|
|
}
|
|
|
|
System.setProperty('osgi.platform', osgi_platform)
|
|
|
|
subprojects {
|
|
configurations.all {
|
|
resolutionStrategy {
|
|
// failOnVersionConflict()
|
|
dependencySubstitution {
|
|
substitute module('eclipse-deps:org.eclipse.swt.${osgi.platform}') with module("eclipse-deps:org.eclipse.swt.${System.getProperty('osgi.platform')}:3.+")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// optional lint checking of Gradle scripts
|
|
//
|
|
|
|
allprojects {
|
|
apply plugin: 'nebula.lint'
|
|
gradleLint.alwaysRun = false
|
|
gradleLint {
|
|
rules = ['all-dependency']
|
|
excludedRules = [
|
|
'duplicate-dependency-class',
|
|
'transitive-duplicate-dependency-class',
|
|
'unused-dependency',
|
|
]
|
|
}
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// disable Javadoc linter until documentation is in better shape
|
|
//
|
|
|
|
allprojects {
|
|
tasks.withType(Javadoc) {
|
|
options.addStringOption('Xdoclint:none', '-quiet')
|
|
}
|
|
}
|