Skip to content
Snippets Groups Projects
build.gradle 4.62 KiB
Newer Older
Nils Christian Ehmke's avatar
Nils Christian Ehmke committed
apply plugin: 'application'
apply plugin: 'eclipse'

mainClassName = 'kieker.diagnosis.Main'
Nils Christian Ehmke's avatar
Nils Christian Ehmke committed
version = '1.0-SNAPSHOT'

sourceCompatibility = '1.7'
targetCompatibility = '1.7'

repositories {
	mavenCentral()
	maven { url 'https://swt-repo.googlecode.com/svn/repo/' }
	maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } 
Nils Christian Ehmke's avatar
Nils Christian Ehmke committed
}

configurations { 
	windowsX86Runtime
	windowsX64Runtime
	linuxX86Runtime
	linuxX64Runtime
  
  providedCompile 
}

dependencies {
  // One of the runtime dependencies has to be used during the compilation. Modify this entry for Eclipse depending on your development JRE.
  providedCompile 'org.eclipse.swt:org.eclipse.swt.win32.win32.x86_64:4.4'
  
	windowsX86Runtime 'org.eclipse.swt:org.eclipse.swt.win32.win32.x86:4.4'
	windowsX64Runtime 'org.eclipse.swt:org.eclipse.swt.win32.win32.x86_64:4.4'
	linuxX86Runtime 'org.eclipse.swt:org.eclipse.swt.gtk.linux.x86:4.4'
	linuxX64Runtime 'org.eclipse.swt:org.eclipse.swt.gtk.linux.x86_64:4.4'
	
	compile 'net.sourceforge.teetime:teetime:1.1-SNAPSHOT'
Nils Christian Ehmke's avatar
Nils Christian Ehmke committed
	compile 'net.sourceforge.teetime-stages:teetime-stages:1.0-SNAPSHOT'
	compile 'net.kieker-monitoring:kieker:1.11-SNAPSHOT'
	compile 'org.eclipse:jface:3.2.1-M20060908-1000'
  
	testCompile 'org.hamcrest:hamcrest-core:1.3'
	testCompile 'org.hamcrest:hamcrest-library:1.3'
	testCompile 'junit:junit:4.12'
Nils Christian Ehmke's avatar
Nils Christian Ehmke committed
}

// Add the provided-scoped dependencies to the classpaths
sourceSets.main.compileClasspath += configurations.providedCompile
eclipse.classpath.plusConfigurations += [configurations.providedCompile]

Nils Christian Ehmke's avatar
Nils Christian Ehmke committed
apply plugin: 'pmd'
pmd { 
  ignoreFailures = true
Nils Christian Ehmke's avatar
Nils Christian Ehmke committed
  
  ruleSets = []
  ruleSetFiles = files('config/pmd/ruleset.xml')
Nils Christian Ehmke's avatar
Nils Christian Ehmke committed
}

apply plugin: 'checkstyle'
checkstyle {
  ignoreFailures = true
  showViolations = false
}

apply plugin: 'findbugs'
findbugs { 
  ignoreFailures = true 
  effort = "max"
  reportLevel = "low"
Nils Christian Ehmke's avatar
Nils Christian Ehmke committed
  
  excludeFilter = file('config/findbugs/excludeFilter.xml')
Nils Christian Ehmke's avatar
Nils Christian Ehmke committed
def commonStartScriptConfiguration = {
Nils Christian Ehmke's avatar
Nils Christian Ehmke committed
  mainClassName = project.mainClassName
  applicationName = 'start' 
  outputDir = new File(project.buildDir, 'scripts')
  classpath = jar.outputs.files + project.configurations.runtime 
Nils Christian Ehmke's avatar
Nils Christian Ehmke committed
}

task createStartScriptWinX86(type: CreateStartScripts) {
	configure commonStartScriptConfiguration
  classpath += project.configurations.windowsX86Runtime
}

task createStartScriptWinX64(type: CreateStartScripts) {
	configure commonStartScriptConfiguration
  classpath += project.configurations.windowsX64Runtime
}

task createStartScriptLinuxX86(type: CreateStartScripts) {
	configure commonStartScriptConfiguration
  classpath += project.configurations.linuxX86Runtime 
}

task createStartScriptLinuxX64(type: CreateStartScripts) {
	configure commonStartScriptConfiguration
  classpath += project.configurations.linuxX64Runtime
}

def commonDistBinConfiguration = {
  into('lib') {
    from configurations.runtime
    from jar.archivePath 
  }
}

task distBinWinX86(type: Zip, dependsOn: [jar, createStartScriptWinX86]) {
	description = 'Bundles the project as a JVM application with OS specific libs and script for Windows x86.'
	classifier = 'windows_x86'
	
	configure commonDistBinConfiguration
	
	into ('bin') {
		from createStartScriptWinX86.getWindowsScript()
	}
	
  into('lib') {
Nils Christian Ehmke's avatar
Nils Christian Ehmke committed
    from configurations.windowsX86Runtime
Nils Christian Ehmke's avatar
Nils Christian Ehmke committed
  }
}

task distBinWinX64(type: Zip, dependsOn: [jar, createStartScriptWinX64]) {
	description = 'Bundles the project as a JVM application with OS specific libs and script for Windows x64.'
	classifier = 'windows_x64'
	
	configure commonDistBinConfiguration
	
	into ('bin') {
		from createStartScriptWinX64.getWindowsScript()
	}

  into('lib') {
    from configurations.windowsX64Runtime
  }
}

task distBinLinuxX86(type: Tar, dependsOn: [jar, createStartScriptLinuxX86]) {
	description = 'Bundles the project as a JVM application with OS specific libs and script for Linux x86.'
	classifier = 'linux_x86'
	compression = Compression.GZIP
	
	configure commonDistBinConfiguration
	
	into ('bin') {
		from createStartScriptLinuxX86.getUnixScript()
	}
	
  into('lib') {
    from configurations.linuxX86Runtime
  }
}

task distBinLinuxX64(type: Tar, dependsOn: [jar, createStartScriptLinuxX64]) {
	description = 'Bundles the project as a JVM application with OS specific libs and script for Linux x64.'
	classifier = 'linux_x64'
	compression = Compression.GZIP
	
	configure commonDistBinConfiguration
	
	into ('bin') {
		from createStartScriptLinuxX64.getUnixScript()
	}
	
  into('lib') {
    from configurations.linuxX64Runtime
  }
}

task distAllBin(dependsOn: [distBinWinX86, distBinWinX64, distBinLinuxX86, distBinLinuxX64]) {
	description = 'Bundles the project as a JVM application with OS specific libs and scripts for all platforms.'
}